使用 MVVM 模式在 Telerik RadGridView 中查找所选项目
我在我的应用程序中使用 Telerik RadGridView,它有一个 GridViewSelectColumn 项目,它允许我选择网格中的各种项目。我有一个对此选择进行操作的按钮,但不确定如何获取所选项目的列表。问题是我正在使用带有 Caliburn.Micro 的 MVVM 模式。我是否需要在视图中找到控件并遍历所选项目的列表?对于一项简单的任务来说,这似乎需要做很多工作。我将不胜感激任何想法。
I am using a Telerik RadGridView in my application and it has a GridViewSelectColumn item in it, which allows me to select various items in the grid. I have a button that operates on this selection, but am not sure how to get the list of selected items. The problem is that I am using an MVVM pattern with Caliburn.Micro. Do I need to find the control in the view and traverse the list of selected items? That seems like a lot of work for a simple task. I would appreciate any ideas.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Telerik 的 RadGridView 的问题是,它的 SelectedItem 集合是只读的,因此您无法将双向绑定到 SelectedItems。
解决此问题的方法是使用自定义行为在 RadGridView 和 ViewModels SelectedItem 集合之间进行同步
您可以使用此行为:
将此行为与 RadGridView 一起使用,如下所示:
The problem with Telerik's RadGridView is, that its SelectedItem collection is read-only, so you cannot bind two-way to SelectedItems.
A workaround for this is to use a custom Behavior to do the synchronization between RadGridView and your ViewModels SelectedItem collection
You may use this Behavior:
Use this Behavior with RadGridViews like this:
将 bool IsSelected 添加到集合中的项目:
示例代码 - bitbucket
下载
Add a bool IsSelected to the item in your collection:
sample code - bitbucket
download
这是 @Knasterbax 类的清理副本,具有显式私有修饰符和 null 传播:
Here is a cleaned up copy of @Knasterbax's class with explicit private modifiers and null propagation:
这是上面答案的清理版本。这会删除下划线,添加限定符、访问器、大括号等。
Here's a cleanup version of the answer above. This removes underscores, adds qualifiers, accessors, braces, etc.
在某些情况下,您无法添加布尔值(例如 ObseravbleCollection。
请查看 这个解决方案。
There are a situation where you cannot add boolean (ObseravbleCollection for example.
Please take a look at this solution.