Wpf 设置DataGridTextColumn上的文本

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}">

我使用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>


但是我找不到正在设置的文本。我尝试更改文本块的背景及其工作方式。为什么我不能设置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>