установка текста в DataGridTextColumn - PullRequest
1 голос
/ 14 сентября 2010

Я использую 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 ]

3 голосов
/ 14 сентября 2010

Привязка в столбце может переопределять Setter.

Но для этого не требуется триггер данных.Так как в привязке есть свойство, которое вы можете установить для этих типов сценариев.

TargetNullValue позволяет вам установить значение в случае, если путь привязки равен нулю.

Взято из: Какой самый простой способ отобразить значения NULL как «NULL» с привязкой данных WPF?

2 голосов
/ 16 апреля 2013

Пространство имен 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>
...