事件处理MVVM WinRT

时间:2013-01-02 20:15:12

标签: mvvm windows-8 microsoft-metro windows-runtime

如何在Metro应用程序中处理MVVM中的事件?我在WPF中使用了来自MVVM light的交互类和EventToCommand,但似乎在WinRT中没有交互。也没有触发器所以我必须“使用丑陋的方式”? (代码背后和

(this.DataContext as ViewModel).Command.Execute()

例如

?)

2 个答案:

答案 0 :(得分:1)

到目前为止我发现的EventToCommand的最佳替代方案是附加的命令解决方案,该解决方案已在此CodeProject article中演示。

这就是它的使用方式。

<Button Content="Test Button"
 local:AttachedCommand.RoutedEvent="PointerEntered"
 local:AttachedCommand.Command="{Binding TestCommand}"/>

另一种选择是Joost van Schaik的mimic of the EventToCommand行为,但鉴于所需的依赖关系,它对我来说太沉重了。

答案 1 :(得分:0)

使用与Silverlight相同的方法附加命令,除了绑定到viewmodel将使用接口和实现它的类。此类应该用作datacontext中的定位器,并在app.xaml.cs文件中声明它。如果您需要更多详细信息,请与我们联系。