1

「DataGrid」で単一のセルの背景色を設定しようとしていますが、色をDataGridCellに設定するたびに、行全体の背景が上書きされます。私のコード:

 <Setter Property="CellStyle">
                    <Setter.Value>
                        <Style TargetType="{x:Type DataGridCell}">
                            <Setter Property="Background" Value="{Binding id, Converter={StaticResource TheConverter}}" />
                        </Style>
                    </Setter.Value>
                </Setter>


public class CellHighlighterConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value.ToString() == "1") return new SolidColorBrush(Colors.Red);

        return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

だから問題は...ID「1」の行全体が赤です!idセルだけではありません。これを行う正しい方法は何ですか?

4

1 に答える 1

0

次の回避策を試すことができます。

  1. セルの内容を Grid でラップします。
  2. 水平方向と垂直方向の両方に伸びるようにグリッドを設定します。
  3. セルの背景色ではなく、グリッドの背景色を変更します。

自分でテストしたことはありませんが、試してみる価値があると思います。

于 2013-01-31T08:47:25.733 に答える