我想在WPF中构建一套典型的CRUD维护表单 - 除了它们在不同的数据库记录上工作外,它们几乎是相同的。基于DataContext的类型选择用户控件
而不是为每个创建一个新的窗口类,我试图使用一个单独的窗口类,为每个数据库表使用不同的ViewModel类实例化,并为此为每个ViewModel定义了不同的UserControl。因此,如果我将其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不使用。
任何想法?
其实行选择
2011-12-30 00:45:32
DataTemplate
,这个作品,如果我用