2013-05-21 88 views
0

我有一個ListView填充了三種不同類型的項目。當我在ListView中選擇ListViewItem時,我想在專門爲所選項目類型設計的模板中顯示數據。XAML模板數據

數據顯示在與ListView相同的Grid的不同列中。

我的問題是,我應該使用什麼元素來製作新的模板來顯示所選項目的數據。

我希望能夠在Grid上設置一種ItemTemplate屬性,但情況並非如此。

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

這樣做的正確方法是什麼?

回答

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> 

相應的模板將基於它的類型來選擇。

+0

謝謝!看起來它會起作用。 – Chris