更改Readonly datagrid行的背景颜色

时间:2016-04-19 09:41:57

标签: c# wpf telerik

我正在使用Telerik Datagrid视图控件,其中我的几行是只读的(因此,根据readonly的视觉样式,行的背景颜色为灰色)。

现在,当我将背景颜色更改为任何其他颜色时,只读行不会受到影响。他们的背景只有灰色。

以下代码我试过了;

public void SetRowBackColor(string color, params int rowIndices)
{
    var brush = (SolidColorBrush)new BrushConverter().ConvertFromString(color);
    var s = new Style();
    s.Setters.Add(new Setter(BackgroundProperty, brush));

    var row = (GridViewRow)RadGridView.ItemContainerGenerator.ContainerFromIndex(item);
    if (row == null)
    {
        RadGridView.UpdateLayout();
        RadGridView.ScrollIntoView(RadGridView.Items[item]);
        row = (GridViewRow)RadGridView.ItemContainerGenerator.ContainerFromIndex(item);
    }
    row.Style = s;
}

1 个答案:

答案 0 :(得分:0)

您可以仅在XAML中设置此项,而不是将颜色设置为行创建颜色属性并设置该项,现在当行禁用时,它应该采用您的颜色。

<telerik:RadGridView.RowStyle>
    <Style TargetType="telerik:GridViewRow">
        <Style.Triggers>
             <Trigger Property="IsEnabled" Value="True">
                <Trigger.Setters>
                    <Setter Property="Background" Value="{Binding COLOR_Property}"/>
                </Trigger.Setters>              
             </Trigger>                         
        </Style.Triggers>
    </Style>
</telerik:RadGridView.RowStyle>

如果您的颜色在运行时没有变化,那么只添加颜色名称而不是像COLOR_Property那样是有意义的 -

<Setter Property="Background" Value="Red"/>