Я пытаюсь создать набор типичных форм поддержки CRUD в WPF - это будет почти то же самое, за исключением того, что они работают с различными записями базы данных.Выбор пользовательского элемента управления на основе типа DataContext
Вместо того, чтобы создавать новый класс окна для каждого, я пытаюсь использовать один класс окна, который создается с помощью другого класса ViewModel для каждой таблицы базы данных и для которого у меня есть другой UserControl, определенный для каждого ViewModel.
Итак, если я создаю экземпляр окна с его DataContext, установленным в экземпляр Record1ViewModel, я хочу отобразить его в окне с помощью Record1UserControl, если он настроен на экземпляр Record2ViewModel, я хочу отобразить его с помощью Record2UserControl ,
Я проверил, что оба пользовательских элемента управления работают нормально, определяя их каждый непосредственно в XAML окна. Но я не понял, как выбрать тот или иной, в зависимости от типа ViewModel.
Это не работает:
<myWindow.Resources>
<DataTemplate x:Key="{x:Type ViewModels:Record1ViewModel}">
<MaintenanceControls:Record1 />
</DataTemplate>
<DataTemplate x:Key="{x:Type ViewModels:Record2ViewModel}">
<MaintenanceControls:Record1 />
</DataTemplate>
</myWindow.Resources>
<ContentPresenter Content="{Binding}" />
Что я получаю, в ContentPresenter, это имя типа. DataTemplates не используются.
Любые идеи?
На самом деле, это работает, если я использую