DatagriddgColor
包含两个字段:
columnA
显示名称如 a、b、c。columnB
是一个隐藏字段,其中包含颜色代码值,例如(#ffffff, #ff1211, #1111, #1222)
.
根据中的值填充数据网格行颜色columnB
。
DatagriddgColor
包含两个字段:
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>