从MVVM WPF中的另一个视图模型更改视图模型的值

时间:2019-12-12 23:49:19

标签: c# wpf mvvm

我有两个视图模型,MainMenuViewModel和ListViewModel。 MainMenuViewModel具有属性Page,该属性是一个字符串,其名称为xaml文件的名称,用于更改Source的{​​{1}}。现在,我想从ListViewModel更改此属性。我没有使用任何框架。 我现在正在做的是创建一个变量Frame,并从该变量调用一个方法来更改public MainMenuViewModel mmvm { get; set; }的值,但是抛出了Page。  我该怎么办?

1 个答案:

答案 0 :(得分:0)

几个选项:

  1. 如果MainViewModelListViewModel有直接关系,则在构造MainViewModel时只需传递对ListViewModel的引用。然后只需直接从MainViewModel's调用ListViewModel属性即可。

  2. 如果他们没有直接关系,则可以使用Messenger模式。基本上,MainViewModel将注册为某种消息(例如ChangePageMessage),然后ListViewModel将发送该消息的实例以更改页面。我不知道您使用哪种MVVM框架,但这是一个example for MVVM Light