WPF中ListView小Demo的数据绑定应用

 
WPF中的数据绑定非常的好用,下面的例子可以说明这点.
效果图:
我们在Xaml代码中创建一个ListView
    我们设置ListView中的样式绑定为静态绑定
    分别定义三个列用来绑定数据ID,Name,Balance
代码如下:
   <ListView
      Name="listView"
      ItemContainerStyle="{StaticResource ItemContStyle}"
      ItemsSource="{Binding}"          
      >
      <ListView.View>
        <GridView>
          <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
          <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
          <GridViewColumn Header="Balance" Width="140">
            <GridViewColumn.CellTemplate>
              <DataTemplate>
                <TextBlock Text="{Binding Balance}" TextAlignment="Right" />
              </DataTemplate>
            </GridViewColumn.CellTemplate>
          </GridViewColumn>
        </GridView>
      </ListView.View>
    </ListView>
 
我们在资源中增加下列代码:
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}">
      <Style.Resources>
        <LinearGradientBrush x:Key="ProfitBrush" StartPoint="0.5,0" EndPoint="0.5,1">
          <GradientStop Offset="0.1" Color="#AA00CC00" />
          <GradientStop Offset="0.8" Color="#55008800" />
        </LinearGradientBrush>
        <LinearGradientBrush x:Key="LossBrush" StartPoint="0.5,0" EndPoint="0.5,1">
          <GradientStop Offset="0.1" Color="#AACC0000" />
          <GradientStop Offset="0.8" Color="#55880000" />
        </LinearGradientBrush>
<local:NumberToPolarValueConverter x:Key="PolarValueConv" />
      </Style.Resources>
     
       <Setter Property="HorizontalContentAlignment" Value="Stretch" />
 
      <Style.Triggers>
        <DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="+1">
          <Setter Property="Background" Value="{StaticResource ProfitBrush}" />
        </DataTrigger>
        <DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="-1">
          <Setter Property="Background" Value="{StaticResource LossBrush}" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
在window中增加:
xmlns:local="clr-namespace:HighlightingItemsInWPFListView"
在窗体后台代码处增加下列代码:
 
public Window1()
{
InitializeComponent();
this.listView.DataContext = CreateDataTable();
}
 
DataTable CreateDataTable()
{
DataTable tbl = new DataTable( "Customers" );
 
tbl.Columns.Add( "ID", typeof( int ) );
tbl.Columns.Add( "Name", typeof( string ) );
tbl.Columns.Add( "Balance", typeof( decimal ) );
 
tbl.Rows.Add( 1, "John Doe", 100m );
tbl.Rows.Add( 2, "Jane Dorkenheimer", -209m );
tbl.Rows.Add( 3, "Fred Porkroomio", 0m );
tbl.Rows.Add( 4, "Mike Spike", 550m );
tbl.Rows.Add( 5, "Doris Yakovakovich", 0m );
tbl.Rows.Add( 6, "Boris Zinkwolf", -25m );
 
return tbl;                        
}
 
创建一个类,用来管理调用的资源,代码如下:
[ValueConversion( typeof( object ), typeof( int ) )]
public class NumberToPolarValueConverter : IValueConverter
{
public object Convert(
object value, Type targetType,
object parameter, CultureInfo culture )
{
double number = (double)System.Convert.ChangeType( value, typeof(double) );
 
if( number < 0.0 )
return -1;
 
if( number == 0.0 )
return 0;
 
return +1;
}
 
public object ConvertBack(
object value, Type targetType,
object parameter, CultureInfo culture )
{
throw new NotSupportedException( "ConvertBack not supported" );
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值