13

コンテンツが変更されたときに、WPF データグリッド セルの背景色の色を変更したい。各セルの背後には、Value、OriginalValue、および Modified プロパティを含む ViewModel オブジェクトがあります。ユーザーがセルの内容を編集すると、データ バインディングを介して Amount プロパティが自動的にトリガーされます。次に、このプロパティ セッターは元の値と照合し、ブール型の Modified プロパティをそれぞれ true または false に設定し、それらのプロパティを更新するようバインディングに通知します。

これまでのところ、次のように DataGridTextColumn の ElementStyle プロパティの Style で部分的な結果を達成しました

<Style x:Key="DataGridTextStyle" TargetType="{x:Type TextBlock}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=MyViewModel.Modified}" Value="True">
            <Setter Property="Background" Value="Yellow"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

これにより、テキスト コンテンツの背景色が更新されますが、それはセルの中央の小さな領域にすぎません。テキストブロック属性だけでなく、セル全体の背景色を更新したい。

上記のトリガーを変更して、現在のテキスト ブロックのみの背景色を設定するのではなく、ビジュアル ツリーを上方向に検索して親 DataGridCell を見つけ、その上に Background プロパティを設定することはできますか?

4

2 に答える 2