WPF DataGridTextColumn, как связать цвет переднего плана в стиле на основе содержимого ячейки - PullRequest
0 голосов
/ 24 июня 2018

У меня есть DataGrid, где у меня есть следующее

<DataGridTextColumn Header="MyHeader"        
                    HeaderStyle="{StaticResource ServiceStatusColumn}"
                    ElementStyle="{StaticResource ServiceStatusElementStyle}"
                    Binding="{Binding PuServiceStatus, Converter={StaticResource serviceStatusText}}">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell" BasedOn="{StaticResource ServiceStatusCell}">
            <Setter Property="Foreground" Value="{Binding PuServiceStatus, Converter={StaticResource serviceStatusColor}}" />
        </Style>
    </DataGridTextColumn.CellStyle>
 </DataGridTextColumn>

Вы видите, что у меня есть стиль для DataGridCell 'ServiceStatusCell'. Я хотел бы поставить

<Setter Property="Foreground" Value="{Binding PuServiceStatus, Converter={StaticResource serviceStatusColor}}" />

Как часть определения стиля ServiceStatusCell, но я не понял, как это сделать. Предположительно, мне нужен некоторый тип относительного связывания, который попадает в содержимое TextBlock ... но после долгих экспериментов я не смог этого сделать

Вот определение ServiceStatusCell:

<Style x:Key="ServiceStatusCell" TargetType="DataGridCell">
    <Setter Property="TextBlock.TextAlignment" Value="Center" />
    <Setter Property="Width" Value="20"/>
    <Setter Property="Height" Value="20"/>
</Style>

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 июня 2018

Установка сеттера на DataGridRow работала для меня. Это, однако, меняет передний план для всей строки

<Style x:Key="RowProcessIdAndLevel" TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
        <Setter Property="Foreground" Value="{Binding Level, Converter={StaticResource LevelToForeground}}"/>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...