如何使用MvvmCross显示ViewModel的现有实例的视图?

时间:2013-06-21 19:46:11

标签: xamarin.ios modal-dialog mvvmcross

我认为我的问题标题很清楚。 有关我正在使用MvvmCross vNext的信息..我知道我应该使用v3但是我仍然保持沉默,因为这个版本每周仍然提交...我宁愿等待一个真正稳定的版本。

我遇到的情况是我们使用NetworkViewModel来管理网络表示。它还负责检查服务器的连接状态。如果连接已关闭,ViewModel将发布我的视图订阅的登录消息。 接收它时,我创建了一个对话框(如MonoTouch.Dialog但绑定到我的ViewModel,所以我的NetworkViewModel的MvxTouchDialogViewController),我将其显示为模态视图(我正在使用MvxModalSupportTouchViewPresenter)。为了能够在同一个ViewModel上创建我的对话框,我已经向它应用了MvxUnconventionalViewAttribute,以防止它在启动时在同一个ViewModel类型上注册2 View。 然后我使用MvxShowViewModelRequest来创建我的MvxTouchDialogViewController的实例,并使用我的演示者的Show方法呈现它。

我的问题是,在这种情况下,我创建了一个新的NetworkViewModel实例来附加我的对话框。或者我想为我的模态对话重用相同的NetworkViewModel实例。

通过在当前NetworkViewModel实例上使用BindingInflate方法并指定登录对话框xml布局文件,Android中可以实现等效行为。

iOS有没有相同的内容?

谢谢,

-G。

1 个答案:

答案 0 :(得分:1)

如果要覆盖mvx行为以使其不总是创建新的viewmodel,则可以覆盖viewmodel定位器以为一个或多个viewmodel类型提供自定义viewmodel查找。

有关详细信息,请参阅此问题/答案 - MvvmCross: Does ShowViewModel always construct new instances?