如何处理城域应用程序中MVVM中的事件?我使用WPF中的MVVM light中的交互类和EventToCommand,但似乎在WinRT中没有交互。也没有触发器,所以我必须“使用丑陋的方式”? (后面代码和事件处理MVVM WinRT
(this.DataContext as ViewModel).Command.Execute()
例如?)
如何处理城域应用程序中MVVM中的事件?我使用WPF中的MVVM light中的交互类和EventToCommand,但似乎在WinRT中没有交互。也没有触发器,所以我必须“使用丑陋的方式”? (后面代码和事件处理MVVM WinRT
(this.DataContext as ViewModel).Command.Execute()
例如?)
到目前为止我发现EventToCommand最好的选择是具有BEEM在此CodeProject article展示了连接命令溶液。
这就是它的使用方法。
<Button Content="Test Button"
local:AttachedCommand.RoutedEvent="PointerEntered"
local:AttachedCommand.Command="{Binding TestCommand}"/>
另一种方法是mimic of the EventToCommand行为通过Joost的面包车范斯海克但对我来说给需要的依赖是太重了。
使用相同的方法附加命令,除了绑定到视图模型之外,我们在Silverlight中执行的操作将使用接口和实现它的类。该类应该用作datacontext中的定位器,并在app.xaml.cs文件中声明它。如果您需要更多详细信息,请告诉我。
不幸的是,第一个解决方案对我不起作用 - 引发了InvalidOperationException(WinRT事件不支持动态添加或删除事件处理程序)。你能给我一些建议吗? – fex
我在这里找到了一个解决方案:http://www.guruumeditation.net/blog/events-and-mvvm-commands-in-metro。如果有人能够解释一下这个OnEventToCommandEventChanged是如何工作的(我的意思是什么和链接中的WindowRuntimeMarshal代码行是什么),那将会很棒。 – fex