这应该很简单,但我坚持下去。如果我的DataGrid
绑定到一个集合(比如一个DataTable
),并且一个项目(DataRows)的公共属性之一被命名为IsHighlighted
,我可以绑定我的DataGrid' s对此属性的行IsSelected
状态,以便通过选择/取消选择相应的DataGrid行来更改表中的属性值将反映在UI中?
答案 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
添加了一个显式列,一切正常。希望它可以帮助有人在路上。