我有一個相當基本的WPF UI,用戶請求會導致在我的TabControl中打開一個新選項卡。在的TabControl綁定到ObservableCollection<ViewModelBase>
關於ViewModel管理的問題(DesignTime與運行時間)
我添加視圖模型實例到這個集合,以及相應的選項卡的內容是根據顯示模板是這樣的:
<DataTemplate DataType="{x:Type viewModels:UserUploadsViewModel}">
<userControls:UserUploads />
</DataTemplate>
現在讓我們說UserUploads的是內部控制我倒要連線了VM在XAML來幫助設計,是這樣的:
<UserControl x:Class=".....UserUploads"
.....
DataContext="{Binding Source={StaticResource ViewModelLocater},
Path=UserAdministrationViewModel}">
這個屬性在運行時將返回一個VM提供現場服務,並在設計時模擬數據的VM。
問:這個XAML會干擾我將TabItems內容綁定到ViewModel實例並依靠上面的dataTemplate渲染正確的View嗎?如果是這樣,是否有辦法讓這兩個概念一起工作?
這看起來不錯。所以如果是設計時,那(設計時間視圖模型)對象將被連接起來,但是在運行時它什麼都不會做? –
是的,它是爲了混合性而添加的。 – anivas
太棒了!使用'IsDesignTimeCreatable = True'將填充數據視圖。如果設置爲「False」,它只會提供數據的「形狀」,從而在設計器中提供完整的數據綁定支持,而不是盲目地綁定。另外,您可以使用.xaml文件通過'{d:DesignData}'完整地指定示例數據。請參閱[演練:使用DesignInstance綁定到設計器中的數據](http://msdn.microsoft.com/zh-cn/library/dd490796(VS.100).aspx)和[演練:使用示例數據WPF設計器](http://msdn.microsoft.com/en-us/library/ee823176(v = vs.100).aspx) – cod3monk3y