简便操作WPF数据绑定

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

鄠邑网站建设公司创新互联,鄠邑网站设计制作,有大型网站制作公司丰富经验。已为鄠邑近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的鄠邑做网站的公司定做!

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

文章名称:简便操作WPF数据绑定
当前链接:http://www.zyruijie.cn/qtweb/news4/5954.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联