我試圖圍繞WPF和MVVM我的頭。定義用戶控件的視圖模型的類型,然後從父控件中移交它
在我的測試應用程序中,我有一個MainViewModel
和ChildViewModel
屬性。
同樣地,我有一個實例化一個MainViewModel
並有應該接收MainViewModel.ChildViewModel
對於我目前的應用程序中的子控件我有(剪斷,爲了簡潔)
<Window.DataContext>
<vm:MainWindowViewModel />
</Window.DataContext>
<Window.Content>
<view:ChildView DataContext="ChildViewModel"/>
</Window.Content>
一個窗口的窗口如何我有我ChildView的用戶控件定義它需要一個類型爲ChildViewModel的數據上下文並且也可以接收它?
目前我通過設置它像這樣創建:
<UserControl.DataContext>
<vm:ChildViewModel>
</UserControl.DataContext>
但是這創造了ChildViewModel的新實例。
我試圖讓問題儘可能裸露。希望它仍然清晰
谷歌搜索出現了很多(競爭)的方法,但我不能再看到樹木的森林了。
我仍然困惑於你的控件如何決定接受哪個DataContext。去檢查你的系列,看它是否可以清除任何東西 – 2013-04-12 11:49:54
從第3部分開始,通過你的系列,但我沒有發現任何提及如何控制描述他們所需的模型。我忽略了什麼? – 2013-04-12 13:10:04
@BorisCallens在VM-First中,控件通常不會*「指定」這個 - 事實上,使用多個ViewModel類型(不常見但可能)的控件是完全合理和可能的,因爲「合適的虛擬機」變成了虛擬機必須遵守的合同/ API才能與特定的控制一起工作。 – 2013-04-12 15:13:52