複数のタイプのビュー モデルを含む ObservableCollection があり、各 GridViewColumn の CellTemplates 内の各タイプの DataTemplate を作成したいと考えています。この単純な例では、基本の ViewModel を作成できましたが、xaml からだけ作成できるようにしたいと考えています。以下の xaml は、私がやろうとしていることを示しています。ここでは、CellTemplate ごとに DataTemplates の 1 つが使用されます。
GridViewColumn.Resources があった場合、そこで DataTemplates を定義し、CellTemplate で ContentPresenter を含む DataTemplate を使用しますが、明らかにそれはできません。TemplateSelector が必要かもしれないと考えていますが、どこから始めればよいかわかりません。
<ListView ItemsSource={Binding GenericObservableCollection>
<ListView.View>
<GridView>
<GridViewColumn Header="Type">
<GridViewColumn.CellTemplate>
<DataTemplate DataType="{x:Type vm:ActionInputViewModel}">
<TextBlock Text="Input"/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ActionOutputViewModel}">
<TextBlock Text="Output"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Value">
<GridViewColumn.CellTemplate>
<DataTemplate DataType="{x:Type vm:ActionInputViewModel}">
<TextBlock Text="{Binding Property1}"/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ActionOutputViewModel}">
<TextBlock Text="{Binding Property2}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>