当前位置:   article > 正文

WPF的DataGrid的某个列绑定数据的三种方法(Binding、Converter、DataTrigger)_wpf中的datagrid怎么绑定数据库表中对应的列

wpf中的datagrid怎么绑定数据库表中对应的列

最近在使用WPF的时候,遇到某个列的值需要根据内容不同进行转换显示的需求。尝试了一下,大概有三种方式可以实现:

1、传统的Binding方法,后台构造好数据,绑定就行。

2、转换器方法(Converter),绑定后,触发转换器,转换器负责把值转换成需要的内容。

3、DataTrigger方法,直接在xaml里面对数据进行处理,展示所需要的内容。

这里主要学习了怎么使用第3种方法。写下来,防止突然想找的时候还得去翻源码。

  1. <DataGridTemplateColumn Header="数据包是否下载" Width="140">
  2. <DataGridTemplateColumn.CellTemplate>
  3. <DataTemplate>
  4. <TextBlock>
  5. <TextBlock.Style>
  6. <Style TargetType="TextBlock" BasedOn="{StaticResource TextBlockBaseStyle}">
  7. <Style.Triggers>
  8. <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="False">
  9. <Setter Property="Text" Value="否"></Setter>
  10. <Setter Property="Foreground" Value="Red"></Setter>
  11. </DataTrigger>
  12. <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="True">
  13. <Setter Property="Text" Value="是"></Setter>
  14. <Setter Property="Foreground" Value="Green"></Setter>
  15. </DataTrigger>
  16. </Style.Triggers>
  17. </Style>
  18. </TextBlock.Style>
  19. </TextBlock>
  20. </DataTemplate>
  21. </DataGridTemplateColumn.CellTemplate>
  22. </DataGridTemplateColumn>

根据绑定的DevIsDownload列的内容(bool类型),来触发显示效果,如果为false,则前台显示为 红色的“否”字。如果为true,则前台显示为 绿色的“是”字。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/582858
推荐阅读