您如何在 Metro 应用程序中处理 MVVM 中的事件?我在 WPF 中使用了来自 MVVM 灯的交互类和 EventToCommand,但在 WinRT 中似乎没有交互。也没有触发器,所以我必须“使用丑陋的方式”吗?(后面的代码和
(this.DataContext as ViewModel).Command.Execute()
例如?)
您如何在 Metro 应用程序中处理 MVVM 中的事件?我在 WPF 中使用了来自 MVVM 灯的交互类和 EventToCommand,但在 WinRT 中似乎没有交互。也没有触发器,所以我必须“使用丑陋的方式”吗?(后面的代码和
(this.DataContext as ViewModel).Command.Execute()
例如?)
到目前为止,我发现的 EventToCommand 的最佳替代方案是附加的命令解决方案,该解决方案已在此CodeProject 文章中演示。
这就是它的使用方式。
<Button Content="Test Button"
local:AttachedCommand.RoutedEvent="PointerEntered"
local:AttachedCommand.Command="{Binding TestCommand}"/>
另一种选择是模仿Joost van Schaik 的 EventToCommand 行为,但考虑到所需的依赖关系,它对我来说太重了。
使用与 Silverlight 中相同的方法附加命令,除了绑定到视图模型将使用接口和实现它的类。此类应用作数据上下文中的定位器,并在 app.xaml.cs 文件中声明它。如果您需要更多详细信息,请告诉我。