对MVVM中事件的一种很好的方法

Car*_*rlo 1 wpf events command mvvm

所以我遇到了试图实现MVVM的问题.AFAIK在ViewModel类中执行方法的最佳方法是通过CommandBinding.

<Button Command={Binding DoSomethingCommand} />
Run Code Online (Sandbox Code Playgroud)

只有这次我需要在ListBoxItem上双击一些东西,ListBoxItem不实现ICommandSource.所以我想知道最好的方法是什么,如果有的话.

谢谢!

编辑:

我只是想到了一种方式,但它似乎相当hacky.如果我公开ListBox.DoubleClick事件,我的ViewModel类订阅它并在触发DoubleClick时运行正确的方法怎么办?

jbe*_*jbe 5

您可以在代码隐藏文件中处理该事件,并在ViewModel对象上调用该方法.在我看来,这比开始破解要好得多.:-)我不会将WPF路由事件传递给ViewModel对象.

谁说禁止使用代码隐藏?模型 - 视图 - ViewModel模式绝对不是.