Wpf 设置DataGridTextColumn上的文本
我使用DataTrigger将空单元格替换为“-”文本。我的代码:Wpf 设置DataGridTextColumn上的文本,wpf,datagrid,datatrigger,Wpf,Datagrid,Datatrigger,我使用DataTrigger将空单元格替换为“-”文本。我的代码: <DataGridTextColumn Header="Time taken" Binding="{Binding Path=finish}" Width="Auto" x:Name="x"> <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Type TextBlock}">
<DataGridTextColumn Header="Time taken" Binding="{Binding Path=finish}" Width="Auto" x:Name="x">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=finish}" Value="{x:Null}">
<Setter Property="TextBlock.Text" Value="-" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
但是我找不到正在设置的文本。我尝试更改文本块的背景及其工作方式。为什么我不能设置Text属性?列中的绑定可能会覆盖
Setter
但您不需要数据触发器来执行此操作。因为绑定中有一个属性,可以为这些场景设置
TargetNullValue允许您在绑定路径为null的情况下设置值
Binding=“{Binding Path=finish,TargetNullValue=which your want}”
摘自:
名称空间
xmlns:sys=“clr命名空间:系统;程序集=mscorlib”
嗨,瓦尔,谢谢你给我最简单的方法!。顺便说一句,我可以知道为什么它不能以我的方式工作吗?Val-触发器似乎可以工作,否则我将无法设置背景属性。是的,我甚至尝试将属性设置为“Text”。没有工作:(是的,但是您没有在columns声明中显式地绑定Background属性。因此,没有任何东西会干扰该操作。哦!那么有什么方法可以修复它吗?或者使用您的解决方案吗?在这种情况下,我想很难修复。因为您正在重写将在sce后面具有绑定的列的组件nes。如果我的解决方案有效,请使用它。这是一个有效的方法。我可以知道为什么添加此答案吗?由于元素样式被覆盖,您需要设置文本值,然后设置触发器以检查datagrid单元格的null或空数据。
<DataGridTextColumn Header="Time taken" Binding="{Binding Path=finish}" Width="Auto" x:Name="x">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="{Binding Path=finish}"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=finish}" Value="{x:Static sys:String.Empty}">
<Setter Property="Text" Value="-"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>