Я пытаюсь создать набор типичных форм обслуживания CRUD в WPF, которые будут примерно одинаковыми, за исключением того, что они будут работать с разными записями базы данных.
Вместо создания нового класса окнадля каждого я пытаюсь использовать один класс окна, экземпляр которого создается с другим классом 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, это имя типа.Шаблоны данных не используются.
Есть идеи?