赞
踩
最近在使用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,则前台显示为 绿色的“是”字。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。