我正在努力找出实现我的设计的最佳方法,或者了解我的设计在MVVM方法方面是否有问题。
这个想法是我的MainWindow将有2个控件; Menu
(正常,文件,编辑等)和ContentControl
。 ContentControl
将绑定到我的MainWindowViewModel的属性。
当应用程序加载时,我的MainWindowViewModel的构造函数将属性(Called CurrentView)绑定到我的WelcomeView;这是一个欢迎消息,有2个按钮。 1按钮用于打开名为SearchView的新视图,另一个按钮用于打开名为AddView的视图。
我遇到的问题是如何解决这个问题。
我的WelcomeViewModel是否允许知道MainWindow视图模型?我假设注意到了。也许它应该调用App.xaml中的一个函数,它说“我已被点击,请关闭我并打开新视图”?
我希望我的问题很清楚,如果没有,请告诉我。
答案 0 :(得分:1)
是。这就是我在WPF中解析“部分视图”的方法:
MainView有一个
<ContentPresenter Content="{Binding ActiveViewModel}"/>
,
然后MainViewModel有一个
public BaseViewModel ActiveViewModel {get;set;} //NotifyPropertyChanged, of course =)
因此,每当您更改“活动ViewModel”时,contentpresenter都会显示该VM的视图。 就这么简单