2012-07-06 51 views
1

我有一個ViewModel,它具有一個具有相同接口的對象列表,並在視圖中顯示它們,我們在視圖模型中有一個UserControl s列表,該視圖綁定至。我想知道是否可以爲列表中的不同類型的具體對象創建模板,並讓WPF爲我應用正確的模板,而不是創建UserControl列表並對其進行綁定。選擇由對象類型確定的WPF DataTemplate

基本上我有:

<StackPanel 
      Margin="0,0,20,0" 
      >     
      <my2:ProfileIdentificationView /> 
      <ItemsControl 
       ItemsSource="{Binding Path=ProfileSections}"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
     </StackPanel> 
    </DockPanel> 

凡的ItemsSource綁定用戶控件列表。我正在尋找一種方法來根據ProfileSection的類型在這裏應用這些UserControls的外觀。像一種類型是IIS部分,另一種類型是用戶部分。

回答

3

您可以通過DataTemplate.DataType爲您的視圖模型創建implciit DataTemplates。確保使用x:Type標記擴展,因爲字符串被解釋爲XML元素標記(以允許XML的隱式模板)。

+0

因此,爲了實現這一切,我需要做的是在我的資源部分定義模板,它們將自動應用? – twreid 2012-07-06 15:40:21

+0

謝謝你,這工作得很好。 – twreid 2012-07-06 15:45:00

+0

@twreid:這很方便,我傾向於讓應用程序創建這樣的隱式模板,通過反射連接視圖模型和它們各自的視圖。 – 2012-07-06 15:48:01