我有一个ViewModel,它有一个具有相同接口的对象列表,并在视图中显示它们,我们在视图模型中有一个UserControl
列表,视图绑定到该列表。我想知道是否可以为列表中的不同类型的具体对象创建模板,并让WPF为我应用正确的模板,而不是创建UserControl
列表并绑定到该列表。
基本上我有:
<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部分,另一个类型是用户部分。
答案 0 :(得分:3)
您可以通过DataTemplate.DataType
为视图模型创建implciit DataTemplates
。确保使用x:Type
标记扩展,因为字符串被解释为XML元素标记(以允许隐式模板化XML)。