0

我有一个ListView填充了三种不同类型的项目。当我ListViewItemListView我想在专门为所选项目的类型设计的模板中显示数据时选择一个。

数据显示在与 相同的不同列GridListView

我的问题是,我应该使用什么元素来制作新模板来显示所选项目的数据。

我希望可以在 a 上设置某种ItemTemplate属性Grid,但事实并非如此。

<Grid
    x:Name="ItemDetailsGrid"
    DataContext="{Binding SelectedItem}"
    ItemTemplate="{StaticResource {Binding SelectedItem.TemplateName}}">         
</Grid>

这样做的正确方法是什么?

4

1 回答 1

1

我认为您将需要一个 ContentPresenter

<ContentPresenter
   x:Name = "ItemDetailsGrid"
   Content = "{Binding SelectedItem}">
   <ContentPresenter.Resources>
      <DataTemplate DateType="{x:Type Type1}">
          <TextBlock Text="{Binding PropertyA}" />
      </DataTemplate>
      <DataTemplate DateType="{x:Type Type2}">
          <TextBlock Text="{Binding PropertyB}" />
      </DataTemplate>
</ContentPresenter>

将根据其类型选择适当的模板。

于 2013-05-21T15:45:31.627 回答