简便操作WPF数据绑定
创始人
2024-06-17 21:50:32
0

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...