2013-07-15 127 views
0

在Prims中,有两种常见的方法来实现MVVM模式中的用户交互。 http://msdn.microsoft.com/en-us/library/gg405494(v=pandp.40).aspx#sec10 1.实现视图模型可用于启动与用户交互的服务。2.使用视图模型引发的事件来表达与用户交互的意图以及视图中绑定的组件到这些事件并管理交互的视觉方面。使用交互请求对象的MVVMCross用户交互模式?

我认为MvxPresentationHint应该是第一种方法。如何支持第二种方法?

回答

0

我不相信在这个阶段任何人都会在视图模型和视图之间实现任何正式记录的通用跨平台dialog交互模式。

我个人使用几种机制,包括:

  • 使用信使的视图模型发送普通“问Y/N的要求,然后在视图发送“回答是Y/N '的回应。

  • 使用自定义演示覆盖有弹出式对话框

这两种方法都行之有效ShowViewModel行为,是可测试的,只用过的“后台代码”量小,提供易于定制和使用只有弱引用 - 所以不会导致iOS中的任何内存问题。一般来说,在未来面临类似的用户需求时,我认为我会将信使方法作为我的首选 - 但这是个人设计偏好 - 而不是像棱镜那样的“最佳实践”文章。

+0

使用messenger方法(例如MvxMessenger)时,它是处理所有视图和视图模型之间交互的全局服务。我认为对于视图模型和视图模型来说更多的是本地方法。即viewmodel向其视图引发一个通用事件,因此该视图执行某个功能。 –

+0

非常好 - 谢谢 - 我期待在某处阅读你的进展。 – Stuart