在DataGridTextColumn上设置文本

时间:2010-09-14 07:05:49

标签: wpf datagrid datatrigger

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

2 个答案:

答案 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>