首页 文章

将行选择绑定到ViewModel的属性

提问于
浏览
0

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

3 回答

  • 1

    试试这个

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

    上面的片段似乎是正确的稍作修改 . 试试这个

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

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

  • 1

    通过Snoop想出来 . DataGridRowDataContext (当 DataGrid 绑定到 DataTable 时)是 DataRowView 而不是 DataRow . 问题是 IsHighlighted 是一个公共 property ,通过 DataRow 's partial class and therefore didn'添加到了 DataRowView . 我现在通过DataSet设计器向 DataTable 添加了一个显式列,一切正常 . 希望它可以帮助有人在路上 .

相关问题