Wpf 将行选择绑定到ViewModel';s属性
这应该是简单的,但我坚持它。如果我的Wpf 将行选择绑定到ViewModel';s属性,wpf,binding,datagrid,Wpf,Binding,Datagrid,这应该是简单的,但我坚持它。如果我的DataGrid绑定到一个集合(比如DataTable),并且项目的一个公共属性(DataRows)被命名为ishighlight,我可以将我的DataGrid的行IsSelected状态绑定到此属性吗,因此,通过选择/取消选择相应的DataGrid行,表中属性值的更改将反映在UI中?试试这个 <DataGrid.RowStyle> <Style TargetType="{x:Type DataGri
DataGrid
绑定到一个集合(比如DataTable
),并且项目的一个公共属性(DataRows)被命名为ishighlight
,我可以将我的DataGrid的行IsSelected
状态绑定到此属性吗,因此,通过选择/取消选择相应的DataGrid行,表中属性值的更改将反映在UI中?试试这个
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsSelected" Value="{Binding IsHighlighted}"/>
</Style>
</DataGrid.RowStyle>
试试这个
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsSelected" Value="{Binding IsHighlighted}"/>
</Style>
</DataGrid.RowStyle>
上面的代码片段似乎是正确的,只需稍加修改。 试试这个
我假设您已经在模型类中实现了INotifyPropertyChanged接口。上面的代码片段经过轻微修改似乎是正确的。 试试这个
我假设您已经在模型类中实现了INotifyPropertyChanged接口。通过Snoop解决了这个问题。
DataGridRow
的DataContext
(当DataGrid
绑定到DataTable
时)是DataRowView
而不是DataRow
。问题是,ishighlight
是通过DataRow
的分部类添加的公共属性,因此没有进入DataRowView
。现在,我通过DataSet designer向数据表添加了一个显式列,一切正常。希望它能帮助以后的人。通过Snoop发现了这一点。DataGridRow
的DataContext
(当DataGrid
绑定到DataTable
时)是DataRowView
而不是DataRow
。问题是,ishighlight
是通过DataRow
的分部类添加的公共属性,因此没有进入DataRowView
。现在,我通过DataSet designer向数据表添加了一个显式列,一切正常。希望它能帮助其他人。与Snoop联系,了解行的数据上下文并与相应的源代码绑定。@Sankarann:for(int i=0;i<100;i++)注释。追加(“谢谢”)代码>@Sankarann:Snoop是一种工具中的一颗宝石。我明白了。查看我的答案。请与Snoop联系,以了解行的DataContext并与相应的源绑定。@Sankarann:for(int i=0;i<100;i++)注释。追加(“谢谢”)代码>@Sankarann:Snoop是一种工具中的一颗宝石。我明白了。看我的答案。你的解决方案实际上是正确的。另一方面我错了。看看我的答案。谢谢你的努力。你的解决方案实际上是正确的。另一方面我错了。看看我的答案。谢谢你的努力。你的解决方案实际上是正确的。另一方面我错了。看看我的答案。谢谢你的努力。你的解决方案实际上是正确的。另一方面我错了。看看我的答案。谢谢你的努力。