简便操作WPF数据绑定

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

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

我们在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:NumberToPolarValue
    Converter
     x:Key="PolarValueConv" /> 
  12. < /Style.Resources> 
  13. < Setter Property="Horizontal
    ContentAlignment"
     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-names
    pace:HighlightingItems
    InWPFListView"
     

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

  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 NumberToPolar
    ValueConverter : 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数据绑定的应用方法介绍。

责任编辑:曹凯 来源: CSDN
相关推荐

2021-02-11 08:27:28

数据

2023-10-07 11:04:58

WPF数据UI

2009-12-23 15:16:52

WPF数据绑定

2010-03-04 15:31:44

Python SQLI

2009-12-28 09:50:08

WPF数据绑定

2009-12-23 14:19:07

WPF单向绑定

2010-04-08 16:57:03

Unix操作系统

2009-12-28 14:19:51

WPF更新数据源

2009-12-24 16:57:53

WPF密码

2009-12-25 10:46:36

WPF Page

2012-02-20 15:10:37

笔记本常见问题

2013-10-14 17:44:26

2012-01-16 14:56:43

松下传真机

2021-09-01 14:36:14

鸿蒙HarmonyOS应用

2021-09-01 10:37:25

鸿蒙HarmonyOS应用

2021-11-11 12:45:36

PythonCSVJSON

2009-12-29 14:00:02

WPF Dispatc

2009-12-28 17:48:01

WPF界面布局

2023-06-19 16:30:56

云计算

2010-07-28 13:31:10

Flex数据绑定
点赞
收藏

51CTO技术栈公众号