DatagriddgColor
には 2 つのフィールドが含まれています。
columnA
a、b、c のような名前を表示します。columnB
のようなカラーコード値を含む隠しフィールドです(#ffffff, #ff1211, #1111, #1222)
。
の値に基づいて、データグリッドの行の色を塗りつぶしますcolumnB
。
DatagriddgColor
には 2 つのフィールドが含まれています。
columnA
a、b、c のような名前を表示します。columnB
のようなカラーコード値を含む隠しフィールドです(#ffffff, #ff1211, #1111, #1222)
。の値に基づいて、データグリッドの行の色を塗りつぶしますcolumnB
。
各行に必要な色を既に取得しているため、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));
}
}
編集: 代わりに編集したコードを試してください。それは仕事をするべきです。
これを試してみてください。ただし、データでテストしていません
<DataGrid Name="dataGrid1" Margin="12,12,0,0">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding Path=colorCol}" />
</Style>
</DataGrid.RowStyle>
</DataGrid>