我一直在搜索有关将WPF事件绑定到ViewModel中定义的命令的一些信息。
我知道有很多框架可以为我做,但我不想使用它们中的任何一个,但是从头开始实施一些东西,看看它是如何工作的。
我发现了这篇文章: http://blog.functionalfun.net/2008/09/hooking-up-commands-to-events-in-wpf.html
总的来说它非常好。但是,我有两个问题:
我想要一个带参数的命令,并将参数绑定到XAML中的属性(如CommandParameter={Binding ...}
)。如何扩展文章来处理这个?
根据我对此实现的理解,让我们说两个不同的UI元素中的MouseDoubleClick
事件,我需要定义两个不同的属性并将它们附加到每个类型我想扩展。是不是有更聪明的方法(即定义一个附加属性,然后在所有元素中使用它)?
答案 0 :(得分:1)
请考虑使用MVVM Light library中的EventToCommand
行为。相关文章:Commands, RelayCommands and EventToCommand)。
此外,还有EventToCommand
行为的替代方法(文章引用):
注意:您也可以使用
InvokeCommandAction
代替MVVM LightEventToCommand
。此行为是System.Windows.Interactivity DLL的一部分。它几乎相当于EventToCommand
,但没有一些高级功能。
在此处找到了使用注释中提到的InvokeCommandAction
的示例:Executing a command from an event of your choice。