• WPF的DataGrid的某个列绑定数据的三种方法(Binding、Converter、DataTrigger)


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

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

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

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

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

    <DataGridTemplateColumn Header="数据包是否下载" Width="140">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock>
                    <TextBlock.Style>
                        <Style TargetType="TextBlock" BasedOn="{StaticResource TextBlockBaseStyle}">
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="False">
                                    <Setter Property="Text"  Value="否"></Setter>
                                    <Setter Property="Foreground" Value="Red"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="True">
                                    <Setter Property="Text"  Value="是"></Setter>
                                    <Setter Property="Foreground" Value="Green"></Setter>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </TextBlock.Style>
                </TextBlock>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    

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

  • 相关阅读:
    如何写一个简单的解释器
    linux下ifconfig, DNS以及route配置
    再次看编码
    Linux kernel API的查看
    学习Haskell的一些资料
    Unix,windows和Mac中的换行
    Cmake中的find_package功能
    知乎上有一个问题“在mfc框架中,有上面方法能直接将opencv2.0库中的Mat格式图片传递到Picture Control”中显示?
    RANSAC和Flitline
    花40分钟写一个-CBIR引擎-代码公开
  • 原文地址:https://www.cnblogs.com/wdw984/p/11096978.html
Copyright © 2020-2023  润新知