选择由对象类型确定的WPF DataTemplate

时间:2012-07-06 15:27:12

标签: c# wpf xaml user-controls datatemplate

我有一个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部分,另一个类型是用户部分。

1 个答案:

答案 0 :(得分:3)

您可以通过DataTemplate.DataType为视图模型创建implciit DataTemplates。确保使用x:Type标记扩展,因为字符串被解释为XML元素标记(以允许隐式模板化XML)。