1

我需要为 WinRT 应用程序中的列表和组合框实现选择更改事件。我正在使用 MvvmCross 但 AFAIK 这是一个 WinRT 而不是 Mvx 特定的问题。System.Windows.Interactivity 不适用于 WinRT 应用程序,因此我无法使用基于 i:Interaction.Triggers 的技术。我想以真正的 MVVM 方式实现绑定,而无需切换到代码隐藏,因此我可以在其他平台上尽可能多地重用。在 WinRT 应用程序中实现它的合理方法是什么?我在 MvvmCross 示例中没有找到任何示例。

提前致谢

4

2 回答 2

5

如果您正在使用 MvvmCross 在 WinRT 中寻找行为,您现在可以使用 Windows.UI.Interactivity nuget 包(https://nuget.org/packages/Windows.UI.Interactivity)。

在将它与 MvvmCross 一起使用时,我对现有的 MvxEventToCommand 类做了一些小改动(继承自 TriggerAction(FrameworkElement) 而不是 TriggerAction(DependencyObject))。奇迹般有效。

于 2013-02-23T22:13:54.690 回答
2

我认为这是 WinRT 上 Mvvm 的普遍问题

由于某些未知原因,Microsoft 没有在 WinRT 中包含行为。(有这样的理论,比如他们没有时间了,他们不想因为 Expression Blend 的变化等等......)

有很多关于如何解决这个问题的博客文章和文章——其中大部分都围绕着 Joost van Schaik 的优秀库:

我自己没有这样做 - 我倾向于不使用 SelectionChanged 而是将ICommands 放在每个 ListItem 中。如果你让 Joost 的图书馆工作,我很乐意看到一个样本 :)

于 2013-01-18T10:00:41.317 回答