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

列のバインディングがをオーバーライドしている可能性がありますSetter

ただし、これを行うためにデータトリガーは必要ありません。バインディングには、これらの種類のシナリオに設定できるプロパティがあるためです。

TargetNullValueを使用すると、バインディングパスがnullの場合に値を設定できます。

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

取得元: WPFデータバインディングを使用してNULL値を「NULL」として表示する最も簡単な方法は何ですか?

于 2010-09-14T11:56:58.383 に答える
3

名前空間 xmlns:sys="clr-namespace: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 に答える