我在我的应用程序ListView控件被绑定为 CustomObject 名单<< STRONG> CustomObject >的集合。在 CustomObject 具有单独的视图。此ListView中具有单独的视图模型

集合列表_customobject是在ListView ViewModel类containted。

我的查询:

我想要调用,显示自定义对象上的ListView的任一行时用户双击的特性的图。 ListView的双击命令被绑定到的 ListViewDoublClick 命令在视图模型。该CustomObject是列表视图中双击命令的事件参数。为了达致这我要通过自定义对象(或自定义对象的唯一id属性,通过该我可以检索从集合中的自定义对象)作为命令参数。

请给我建议的解决方案!

有帮助吗?

解决方案

要做到这一点,最简单的方法是双击事件处理程序添加到列表中。请记住:MVVM并不意味着在视图中没有代码!这意味着,仅查看处理视图的担忧。你可以做一个很好的说法,EventArgs的是唯一有意义的观点,如果你想将它传递给视图模型应该只通过相关信息。 如果你必须做一些事情,例如提取从EventArgs的数据,并将其传递给视图模型,这是可以接受的,正确的...和不是将EventArgs的下到视图模型,恕我直言更好。

(我敢肯定,我会在这一点上一些分歧,但是处理UI交互是查看关注,如果另一种方法是写一个行为或使用框架来获取单个控制在一个页面上工作,记住:YAGNI和图案不宗教)

几个MVVM框架允许你这样做(虽然有很多关于它是否是一个好主意或不讨论)。 Inparticular的 MVVM光工具包加入这个前阵子支持拖放(如果我没记错博客文章正确地)。

如果你不使用MVVM框架,我已经结束了写行为,让我这样做,如果我打算做同样的事情在多个地方。在这种情况下,我通常提取从EventArgs的我关心的信息(即你可能真的不希望全部事件参数,但你可能不在乎点击了哪个项目和数据的也许几个其他位)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top