我有两个视图模型,MainMenuViewModel和ListViewModel。 MainMenuViewModel具有属性Page
,该属性是一个字符串,其名称为xaml文件的名称,用于更改Source
的{{1}}。现在,我想从ListViewModel更改此属性。我没有使用任何框架。
我现在正在做的是创建一个变量Frame
,并从该变量调用一个方法来更改public MainMenuViewModel mmvm { get; set; }
的值,但是抛出了Page
。
我该怎么办?
答案 0 :(得分:0)
几个选项:
如果MainViewModel
和ListViewModel
有直接关系,则在构造MainViewModel
时只需传递对ListViewModel
的引用。然后只需直接从MainViewModel's
调用ListViewModel
属性即可。
如果他们没有直接关系,则可以使用Messenger模式。基本上,MainViewModel
将注册为某种消息(例如ChangePageMessage
),然后ListViewModel
将发送该消息的实例以更改页面。我不知道您使用哪种MVVM框架,但这是一个example for MVVM Light。