1

列数が異なるWPF DataGridがあります。値に依存する単一セルに色を付けたい。例: cell-value が 0 の場合、赤。

これらは私の実験です:

<DataGrid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" x:Name="DataGrid"  SelectionUnit="Cell">
        <DataGrid.CellStyle>
            <Style TargetType="{x:Type DataGridCell}">
                <Style.Triggers>
                  <!--experiment 1 -->
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Value, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" Value="0">
                        <Setter Property="Background" Value="LimeGreen"/>
                    </DataTrigger>
                   <!--experiment 2 -->
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" Value="0">
                        <Setter Property="Background" Value="LimeGreen"/>
                    </DataTrigger>
                    </Style.Triggers>
            </Style>
        </DataGrid.CellStyle>
</DataGrid>
4

2 に答える 2

0

次のように、値コンバーターを使用します。

<DataGridCell Background="{Binding CellValueField, Converter={StaticResource IntegerToColorValueConverter}}" />

と:

public class IntegerToColorValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter,
          System.Globalization.CultureInfo culture)
    {
        switch ((int)value)
        {
            case 1: return Color.Red; break;
            case 2: return Color.Yellow; break;
            Default: return Color.White; break;
        }
    }

}
于 2015-03-12T14:01:28.830 に答える