我想在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
,這個作品,如果我用