В привязке модели WPF можно было бы сделать, разместив DataTemplate
с видами и видами вида в вашем приложении.xaml. Затем вы можете просто привязать viewmodel к contentpresenter, и ваше представление изменится, если вы измените модель своего представления на какое-то событие.ViewModel-View Binding в универсальных приложениях Windows
Вот старый код:
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)
Однако синтаксис данных отсутствует 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