2

我正在使用 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 属性?

4

2 回答 2

4

列中的 Binding 可能会覆盖Setter.

但是您不需要数据触发器来执行此操作。由于绑定中有一个属性,您可以为这些场景设置。

TargetNullValue 允许您在绑定路径为空的情况下设置一个值。

Binding="{Binding Path=finish, TargetNullValue=Whatever you want}"

取自: 使用 WPF 数据绑定将 NULL 值显示为“NULL”的最简单方法是什么?

于 2010-09-14T11:56:58.383 回答
3

命名空间 xmlns:sys="clr-命名空间:System;assembly=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>
于 2013-04-16T08:25:45.783 回答