XAML模板数据

时间:2013-05-21 15:04:14

标签: c# xaml windows-8 datatemplate windows-store

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

数据显示在与Grid相同的ListView的不同列中。

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

我希望能够在ItemTemplate上设置一种Grid属性,但事实并非如此。

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

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

1 个答案:

答案 0 :(得分: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>

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