简便操作WPF数据绑定

来源:互联网 发布:网络热词高兴 编辑:程序博客网 时间:2024/05/21 08:54

转载地址:http://developer.51cto.com/art/200912/172667.htm

WPF数据绑定的应用在刚刚接触WPF的朋友眼中看来是一个比较难以掌握的技术。不过,实际上熟练的掌握这一技术还是比较简单的。

AD:

WPF开发工具是一个比较实用的辅助工具。主要为开发人员实现了图形界面处理的一些相关功能。WPF数据绑定非常的好用,下面的例子可以说明这点。

  • 应用WPF图像API正确方法讲解
  • 简单实现增加WPF右键菜单功能
  • WPF事件注册特点介绍
  • 对于WPF动态换肤研究方案
  • WPF MediaElement实现音乐功能增加

我们在Xaml代码中创建一个ListView,我们设置ListView中的样式绑定为静态绑定。分别定义三个列用来绑定数据ID,Name,Balance

WPF数据绑定代码如下:

  1. < ListView   
  2. Name="listView" 
  3. ItemContainerStyle="
    {StaticResource ItemContStyle}"
     
  4. ItemsSource="{Binding}"   
  5. > 
  6. < ListView.View> 
  7. < GridView> 
  8. < GridViewColumn Header=
    "ID" DisplayMemberBinding=
    "{Binding ID}" /> 
  9. < GridViewColumn Header=
    "Name" DisplayMemberBinding=
    "{Binding Name}" /> 
  10. < GridViewColumn Header=
    "Balance" Width="140"> 
  11. < GridViewColumn.CellTemplate> 
  12. < DataTemplate> 
  13. < TextBlock Text=
    "{Binding Balance}" 
    TextAlignment="Right" /> 
  14. < /DataTemplate> 
  15. < /GridViewColumn.CellTemplate> 
  16. < /GridViewColumn> 
  17. < /GridView> 
  18. < /ListView.View> 
  19. < /ListView> 

我们在资源中增加下列WPF数据绑定应用代码:

  1. < Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}"> 
  2. < Style.Resources> 
  3. < LinearGradientBrush x:Key="ProfitBrush" StartPoint="0.5,0" EndPoint="0.5,1"> 
  4. < GradientStop Offset="0.1" Color="#AA00CC00" /> 
  5. < GradientStop Offset="0.8" Color="#55008800" /> 
  6. < /LinearGradientBrush> 
  7. < LinearGradientBrush x:Key="LossBrush" StartPoint="0.5,0" EndPoint="0.5,1"> 
  8. < GradientStop Offset="0.1" Color="#AACC0000" /> 
  9. < GradientStop Offset="0.8" Color="#55880000" /> 
  10. < /LinearGradientBrush> 
  11. < local:NumberToPolarValueConverter x:Key="PolarValueConv" /> 
  12. < /Style.Resources> 
  13. < Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
  14. < Style.Triggers> 
  15. < DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="+1"> 
  16. < Setter Property="Background" Value="{StaticResource ProfitBrush}" /> 
  17. < /DataTrigger> 
  18. < DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="-1"> 
  19. < Setter Property="Background" Value="{StaticResource LossBrush}" /> 
  20. < /DataTrigger> 
  21. < /Style.Triggers> 
  22. < /Style> 

在window中增加:

  1. xmlns:local="clr-namespace:HighlightingItemsInWPFListView" 

在窗体后台代码处增加下列代码:

  1. public Window1()  
  2. {  
  3. InitializeComponent();  
  4. this.listView.DataContext = CreateDataTable();  
  5. }  
  6. DataTable CreateDataTable()  
  7. {  
  8. DataTable tbl = new DataTable( "Customers" );  
  9. tbl.Columns.Add( "ID", typeof( int ) );  
  10. tbl.Columns.Add( "Name", typeof( string ) );  
  11. tbl.Columns.Add( "Balance", typeof( decimal ) );  
  12. tbl.Rows.Add( 1, "John Doe", 100m );  
  13. tbl.Rows.Add( 2, "Jane Dorkenheimer", -209m );  
  14. tbl.Rows.Add( 3, "Fred Porkroomio", 0m );  
  15. tbl.Rows.Add( 4, "Mike Spike", 550m );  
  16. tbl.Rows.Add( 5, "Doris Yakovakovich", 0m );  
  17. tbl.Rows.Add( 6, "Boris Zinkwolf", -25m );  
  18. return tbl;   

创建一个类,用来管理调用的资源,代码如下:

  1. [ValueConversion( typeof( object ), typeof( int ) )]  
  2. public class NumberToPolarValueConverter : IValueConverter  
  3. {  
  4. public object Convert(  
  5. object value, Type targetType,  
  6. object parameter, CultureInfo culture )  
  7. {  
  8. double number = (double)System.Convert.ChangeType( value, typeof(double) );  
  9. if( number <  0.0 )  
  10. return -1;  
  11. if( number == 0.0 )  
  12. return 0;  
  13. return +1;  
  14. }  
  15. public object ConvertBack(  
  16. object value, Type targetType,  
  17. object parameter, CultureInfo culture )  
  18. {  
  19. throw new NotSupportedException( "ConvertBack not supported" );  
  20. }  

以上就是对WPF数据绑定的应用方法介绍。


原创粉丝点击