Выбранный текстовым цветом переднего плана в сетке данных WPF - PullRequest
5 голосов
/ 04 июля 2011

Я создал сетку данных в WPF ...
Я определил несколько пользовательских столбцов ..

 <my:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <StackPanel>
                <TextBlock Text="{Binding HeadC}" />
                <TextBlock Text="{Binding HeadCPercent}"  Foreground="#FFF05D1D" />
           </StackPanel>
       </DataTemplate>
 </my:DataGridTemplateColumn.CellTemplate>

Проблема заключается в том, что при смещении строки цвет текстового блока секунд не меняется и он едва виден ...

Есть ли решение этой проблемы?

1 Ответ

6 голосов
/ 04 июля 2011

Добавьте DataTrigger в коллекцию триггеров DataTemplate, которая будет изменять передний план в зависимости от выбранного состояния строки.Как в следующем примере:

<DataTemplate>
  <StackPanel>
    <TextBlock Text="{Binding HeadC}" />
    <TextBlock x:Name="tbPercent" Text="{Binding HeadCPercent}" Foreground="#FFF05D1D"/>
  </StackPanel>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dg:DataGridRow}}}" Value="True">
        <Setter Property="Foreground" TargetName="tbPercent" Value="Blue" />
    </DataTrigger>
  </DataTemlate.Triggers>
</DataTemplate>

Я взял этот ответ за основу и приспособил его к вашему вопросу.Я мог бы сделать опечатку в коде, но вы должны понять :).Надеюсь, это поможет.

...