2013-02-27 66 views
0

我試圖找出實現我的設計的最佳方法,或瞭解我的設計在MVVM方法方面是否錯誤。MVVM - 視圖能夠知道其他ViewModel的多少?

這個想法是我的MainWindow將有2個控件; A Menu(正常,文件,編輯等)和ContentControlContentControl將綁定到我的MainWindowViewModel的屬性。

當應用程序加載時,我的MainWindowViewModel的構造函數將一個屬性(Called CurrentView)綁定到我的WelcomeView;這是一個有2個按鈕的歡迎消息。 1按鈕是打開一個名爲SearchView的新視圖,另一個按鈕打開一個名爲AddView的視圖。

我現在面臨的問題是如何解決這個問題。

允許我的WelcomeViewModel知道MainWindow視圖模型嗎?我假設說明。也許它應該調用App.xaml中的一個函數,它說「我已經被點擊了,請關閉我並打開新視圖」?

我希望我的問題清楚,如果不是,請讓我知道。

+0

您的問題並非100%清楚,但是,是的,ViewModel可以直接引用另一個完全有效的ViewModel。 – 2013-02-27 16:18:51

+0

@HighCore - 抱歉不清楚,但我想你已經回答了!所以,我們假設我的MainWindowViewModel有一個屬性(稱爲CurrentView)。我的MainWindowViewModel的CurrentView屬性可以通過我的WelcomeViewModel(我可以如何在屏幕上更改視圖)? – Dave 2013-02-27 16:20:03

回答

1

是的。這是我在WPF解決 「局部視圖」:

的的MainView有

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

那麼MainViewModel有

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

所以每當你改變「活動ViewModel「,contentpresenter顯示該VM的View。 就這麼簡單

+0

這正是我所擁有的,甚至到了命名!奇怪的巧合,但一個快樂的。這太棒了。謝謝。 – Dave 2013-02-27 16:38:24

相關問題