将行选择绑定到ViewModel的属性

时间:2014-03-19 04:26:48

标签: wpf binding datagrid

这应该很简单,但我坚持下去。如果我的DataGrid绑定到一个集合(比如一个DataTable),并且一个项目(DataRows)的公共属性之一被命名为IsHighlighted,我可以绑定我的DataGrid' s对此属性的行IsSelected状态,以便通过选择/取消选择相应的DataGrid行来更改表中的属性值将反映在UI中?

3 个答案:

答案 0 :(得分:2)

试试这个

         <DataGrid.RowStyle>
            <Style TargetType="{x:Type DataGridRow}">
                <Setter Property="IsSelected" Value="{Binding IsHighlighted}"/>
            </Style>
        </DataGrid.RowStyle>

答案 1 :(得分:1)

上面的代码段似乎是正确的稍作修改。 试试这个

        <DataGrid.RowStyle>
            <Style TargetType="{x:Type DataGridRow}">
                <Setter Property="IsSelected" Value="{Binding IsHighlighted, Mode="TwoWay"}"/>
            </Style>
        </DataGrid.RowStyle>

我假设您已在模型类中实现了INotifyPropertyChanged接口。

答案 2 :(得分:1)

通过Snoop解决这个问题。 DataContext的{​​{1}}(当DataGridRow绑定到DataGrid时)为DataTable而不是DataRowView。问题是DataRow是通过IsHighlighted的部分类添加的公共属性,因此无法进入DataRow。我现在通过DataSet设计器向DataRowView添加了一个显式列,一切正常。希望它可以帮助有人在路上。