我正在嘗試將視圖的datacontext設置爲viewmodel的許多不同方法。資源中的DataTemplate將ViewModel設置爲查看,但是然後
一個我在這一刻oggling是這樣的:
我有我的MainWindowResource:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vw="clr-namespace:DemoStuffPartII.View"
xmlns:vm="clr-namespace:DemoStuffPartII.ViewModel">
<DataTemplate DataType="{x:Type vm:PersonViewModel}">
<vw:PersonView />
</DataTemplate>
但是,這也立刻在哪裏鏈。我知道我應該在View中使用ContentControl。但是,配置它的最佳方式是什麼?如何去做這件事?
你說什麼Content =「{Binding CurrentPage}」,CurrentPage是在我的情況下,然後PersonViewModel,對吧?不過要問,爲什麼要在數據模板中指定ViewModel的時候再次命名ViewModel呢?爲什麼不去內容=「{綁定}」? – 2011-03-31 11:41:53
在DataTemplate中指定的那個是你「捕捉」的那個。這是「目標」。我在綁定中指定的是「源」。但我確實認爲你在這裏看到的是第2步,而不是從一開始就開始。爲了與MVVM一起工作,您應該儘量保持簡單 - 只需使用this.DataContext = new SomeViewModel(); – 2011-03-31 11:46:18
是的,我可能按錯誤的順序做了一些事情,有時候它有點模糊,從哪裏開始。感謝關於ViewModelLocator模式的anser和提示! – 2011-03-31 11:58:26