0

DatagriddgColorには 2 つのフィールドが含まれています。

  • columnAa、b、c のような名前を表示します。
  • columnB のようなカラーコード値を含む隠しフィールドです(#ffffff, #ff1211, #1111, #1222)

の値に基づいて、データグリッドの行の色を塗りつぶしますcolumnB

4

2 に答える 2

0

各行に必要な色を既に取得しているため、LoadingRow イベントで各行の色を簡単に設定できます。現在のコードをテストできないため、おそらくこれを微調整する必要がありますが、次のようなことを試すことができます。

private void dataGrid_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
{
    MyObject myObject = e.Row.Item as MyObject;
    if (myObject != null)
    {
        byte r = byte.Parse(myObject.Color.Substring(1, 2), NumberStyles.HexNumber);
        byte g = byte.Parse(myObject.Color.Substring(3, 2), NumberStyles.HexNumber);
        byte b = byte.Parse(myObject.Color.Substring(5, 2), NumberStyles.HexNumber);

        e.Row.Background = new SolidColorBrush(Color.FromRgb(r,g,b));
    }

}

編集: 代わりに編集したコードを試してください。それは仕事をするべきです。

于 2012-09-18T17:54:39.060 に答える
0

これを試してみてください。ただし、データでテストしていません

    <DataGrid Name="dataGrid1" Margin="12,12,0,0">
        <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Setter Property="Background" Value="{Binding Path=colorCol}" />
            </Style>
        </DataGrid.RowStyle>
    </DataGrid>
于 2012-09-18T13:23:15.400 に答える