将每个datagridrow绑定到一个类

时间:2015-11-10 10:10:32

标签: c# wpf datagrid

我有一个Item类,它有2个属性,“Value”和“IsSelected”。 “Value”格式类似于“Column1 = Value1 :: Column2 = Value2 :: Column3 = Value3”,“IsSelected”是一个布尔值。

我有一个这个Item类的列表,我需要绑定到一个datagrid。所以,基本上我需要拆分“Value”字符串并构造一个DataTable来将它绑定到datagrid。然后,如果Item的“IsSelected”为真,我将需要用颜色为行着色。

我遇到的问题是,我不知道在检查“IsSelected”属性以设置行颜色时如何在数据网格中显示数据。如何绑定我的数据,以便每个数据行绑定到每个Item类?

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以设置DataGridRow的样式,这是一个例子:

 <DataGrid ItemsSource="{Binding Things}">
    <DataGrid.RowStyle>
        <Style TargetType="{x:Type DataGridRow}">
            <Setter Property="Background" Value="Red"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsSelected}" Value="True">
                    <Setter Property="Background" Value="Green"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>

我只是做了一个愚蠢的例子,但是,你只需要编写你的on样式以便绑定你的属性IsSelected在哪一行,在我的例子中,我创建一个Datatrigger,它基于属性IsSelected的值,就像你的情况一样,只要这个属性的值为true,我就将行的背景改为绿色。

就是这样,它就像预期的那样工作。 enter image description here