将事件绑定到ViewModel:扩展文章

时间:2014-03-24 23:43:38

标签: c# wpf xaml mvvm

我一直在搜索有关将WPF事件绑定到ViewModel中定义的命令的一些信息。

我知道有很多框架可以为我做,但我不想使用它们中的任何一个,但是从头开始实施一些东西,看看它是如何工作的。

我发现了这篇文章: http://blog.functionalfun.net/2008/09/hooking-up-commands-to-events-in-wpf.html

总的来说它非常好。但是,我有两个问题:

  1. 我想要一个带参数的命令,并将参数绑定到XAML中的属性(如CommandParameter={Binding ...})。如何扩展文章来处理这个?

  2. 根据我对此实现的理解,让我们说两个不同的UI元素中的MouseDoubleClick事件,我需要定义两个不同的属性并将它们附加到每个类型我想扩展。是不是有更聪明的方法(即定义一个附加属性,然后在所有元素中使用它)?

1 个答案:

答案 0 :(得分:1)

请考虑使用MVVM Light library中的EventToCommand行为。相关文章:Commands, RelayCommands and EventToCommand)。

此外,还有EventToCommand行为的替代方法(文章引用):

  

注意:您也可以使用InvokeCommandAction代替MVVM Light EventToCommand。此行为是System.Windows.Interactivity DLL的一部分。它几乎相当于EventToCommand,但没有一些高级功能。

在此处找到了使用注释中提到的InvokeCommandAction的示例:Executing a command from an event of your choice