我使用DataTrigger用' - '文本替换空单元格。我的代码:
<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>
但是我找不到正在设置的文本。我尝试改变TextBlock的背景及其工作原理。为什么我不能设置Text属性?
答案 0 :(得分:3)
列中的绑定可能会覆盖Setter
。
但是您不需要数据触发器来执行此操作。由于绑定中有一个属性,您可以为这些场景设置。
TargetNullValue允许您在绑定路径为空的情况下设置值。
Binding="{Binding Path=finish, TargetNullValue=Whatever you want}"
取自: What's the simplest way to display NULL values as "NULL" with WPF Data Binding?
答案 1 :(得分:2)
命名空间 的xmlns:SYS = “CLR-命名空间:系统;装配= mscorlib程序”
<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>