在WPF模型綁定中,可以通過在您的app.xaml中放置DataTemplate
以及viewmodel和視圖類型來實現綁定。然後,您可以將視圖模型綁定到contentpresenter,如果您通過某種事件更改了視圖模型,則視圖會發生變化。通用Windows應用程序中的ViewModel-View綁定
這裏的舊代碼:
的App.xaml(AView和BView只是用戶控件)
<Application.Resources>
<DataTemplate DataType="{x:Type viewModels:AViewModel}">
<views:ViewA/>
</DataTemplate>
<DataTemplate DataType="{x:Type viewModels:BViewModel}">
<views:ViewB/>
</DataTemplate>
</Application.Resources>
然後在某種子視圖包含當前上下文:
<ContentPresenter Content="{Binding CurrentViewModel}" />
(很像https://stackoverflow.com/a/22376718/82333)
但是datatemplate語法no lon ger工作。我讀過x:bind,但是對viewmodel類型做一個基本的替換並不能解決它。
使用這個語法:
<Application.Resources>
<DataTemplate x:Key="ViewAKey" x:DataType="viewModels:AViewModel">
<views:ViewA/>
</DataTemplate>
<DataTemplate x:Key="ViewBKey" x:DataType="viewModels:BViewModel">
<views:ViewB/>
</DataTemplate>
</Application.Resources>
原因引起的錯誤:
Visual Studio中抱怨說,視圖模型是不是我提供的命名空間。
XBF generation error code 0x09c4
。
在Windows 10 Universal Apps中,此操作的等效語法是什麼?
那麼我有一個Windows 8.1的WPF應用程序工作,然後我將代碼移到一個Windows 10通用應用程序和'Application.Resources'不再有效,我收到奇怪的錯誤消息。 –
如果沒有DataTemplate ContentTemplate屬性的類型是什麼? – Maximus