根据datagrid中的值设置datagrid行颜色

时间:2012-09-18 12:50:46

标签: wpf wpf-controls wpfdatagrid

Datagrid dgColor包含两个字段:

  • columnA显示的名称类似于a,b,c。
  • columnB是一个隐藏字段,其中包含颜色代码值,如(#ffffff, #ff1211, #1111, #1222)

根据columnB中的值填充数据网格行颜色。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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));
    }

}

修改 请尝试编辑代码。它应该完成这项工作。