0

我正在尝试找出实现我的设计的最佳方法,或者了解我的设计在 MVVM 方法方面是否错误。

这个想法是我的 MainWindow 将有 2 个控件;A Menu(正常、文件、编辑等)和ContentControl. 将ContentControl绑定到我的 MainWindowViewModel 的属性。

当应用程序加载时,我的 MainWindowViewModel 的构造函数将一个属性(称为 CurrentView)绑定到我的 WelcomeView;这是一条欢迎信息,有 2 个按钮。第一个按钮是打开一个名为 SearchView 的新视图,另一个按钮是打开一个名为 AddView 的视图。

我遇到的问题是弄清楚这将如何工作。

是否允许我的 WelcomeViewModel 知道 MainWindow 视图模型?我假设注意。也许它应该调用 App.xaml 中的一个函数,上面写着“我已被点击,请关闭我并打开新视图”?

我希望我的问题很清楚,如果没有,请告诉我。

4

1 回答 1

1

是的。这就是我在 WPF 中解决“部分视图”的方式:

MainView 有一个

<ContentPresenter Content="{Binding ActiveViewModel}"/>,

那么 MainViewModel 有一个

public BaseViewModel ActiveViewModel {get;set;} //NotifyPropertyChanged, of course =)

因此,每当您更改“活动 ViewModel”时,contentpresenter 都会显示该 VM 的视图。就如此容易

于 2013-02-27T16:37:26.723 回答