我有两个场景可以从另一个View调用一个View,通常我们在Frame.Navigate(typeof(MainPage))后面编写代码来调用其他页面,但我不知道如何使用MVVM来做这个。 / p>
如果有人能告诉我它是如何工作的,那么使用一个例子或文章会更有帮助。 感谢。
答案 0 :(得分:2)
例如,在MVVM Light framework blog。
中详细描述了MVVM中的导航通常最好使用现有的MVVM框架,该框架已经提供了一个导航服务,可以轻松地用于引导导航而无需手动操作。
对于第二个请求 - 必须有不同的导航框架,您可能需要有一个自定义导航服务,您可以在其中指定“目标” - 如果您想要导航到左侧的视图模型或右框架。然后,两个框架都将拥有自己的导航历史记录,您需要单独管理它们。
答案 1 :(得分:1)
您使用的是哪个MVVM框架?如果您使用的是Galasoft MvvmLightLibs,则需要使用Messenger.Default.Register和Messenger.Default.Send。
https://msdn.microsoft.com/it-it/magazine/jj694937.aspx
从viewmodel中,您可以发送一条消息(您的自定义类),其中包含导航所需的所有信息(例如,目标页面和相关参数)。在发送消息之前,您需要注册消息:在此位置指定在特定消息重新发送时运行的方法。
通过这种方式,您可以轻松地从视图模型到应用程序的UI层进行通信。