WPF DataGrid 编程式多行选择
还有比下面的示例更简单的吗?我确实有绑定到 DataGrid lstLinks 的可观察集合(代码中的“列表”)
for (int i = 0; i < list.Count ; i++)
{
object rowItem = lstLinks.Items[i] ;
DataGridRow visualItem = (DataGridRow)lstLinks.ItemContainerGenerator.ContainerFromItem(rowItem);
if ( visualItem == null ) break;
if (list[i].Changed)
visualItem.IsSelected = false;
else
visualItem.IsSelected = false;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Salam MicMit :)
是的,有一个更简单的解决方案,您只需将绑定列表中所需的项目添加到 DataGrid SelectedItems 集合中,请参阅下面的代码:[如果这篇文章解决了,请不要忘记标记为答案你的问题:)]
Salam MicMit :)
Yeah, there is a more simple solution, you need just to add the items you want from your bound list to your DataGrid SelectedItems collection, see the code below: [Don't forget to mark as answer if this post solved your problem :)]
MVVM 需要更多招标解决方案,
但它是 MVVM,并且是完全可测试且易于维护的。
看看这里
使用 MVVM 管理多个选择
MVVM Require more tender solution,
but it is MVVM and it is fully testable and easy to maintain.
Take a look here
Managing multiple selections with MVVM
是的,这个解决方案比侵入 DataGrid 控件更好,如果您只想选择一行,您还可以使用以下代码:
其中该项目是绑定 DataGrid 的项目之一。
Yeah, this solution is better than hacking into the DataGrid control, and if you want to select only one row you can also use the following code:
where the item is one of the items bound the DataGrid.
假设
lstLinks
是 WPFDataGrid
,这会将位置i
处的项目添加到所选项目:要取消选择所有内容:
Assuming
lstLinks
is a WPFDataGrid
, this adds item at positioni
to the selected items:To unselect everything: