XAML模板数据

本文关键字:数据 XAML | 更新日期: 2023-09-27 18:14:33

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

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

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

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

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

正确的做法是什么?

XAML模板数据

我认为你需要一个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>

将根据模板的类型选择合适的模板