Tenho o que parece ser uma pergunta muito fácil sobre WPF para algumas pessoas. Não sou totalmente novato em WPF, mas também não sou profissional.
Tentando vincular um contentcontrol ao item selecionado de uma treeview. Pesquisei muitas postagens, e foi isso que pareceu funcionar para outras pessoas, mas não consigo fazer o datatemplate mostrar algo de acordo com o tipo de dado.
<ContentControl Grid.Column="1" Grid.RowSpan="3" Grid.ColumnSpan="2" DataContext="{Binding SelectedItem, ElementName=DataManagerTreeView, Mode=OneWay}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type daq:DAQChartChannel}">
<StackPanel Orientation="Vertical">
<Label>Name</Label>
<Label Content="{Binding Name}"></Label>
<Label>AxisX</Label>
<Label Content="{Binding AxisX}"></Label>
<Label>AxisY</Label>
<Label Content="{Binding AxisY}"></Label>
</StackPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type daq:DAQChart}">
<StackPanel Orientation="Vertical">
<Label>Name</Label>
<Label Content="{Binding Name}"></Label>
</StackPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type daq:DAQChartsCollection}">
<StackPanel Orientation="Vertical">
<Label>Name</Label>
<Label Content="{Binding Name}"></Label>
</StackPanel>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
Se colocar um único stackpanel diretamente dentro do meu ContentControl, ele mostra os dados do item selecionado atual corretamente (pelo menos o nome que é o único presente em todos os tipos de itens), então a vinculação está correta. Mas quando tento usar o ContentControl.Resources para mostrar dados de acordo com o tipo de fonte com DataTemplates, não obtenho nenhuma saída. Estou esquecendo de algo aqui?
Não há outra solução alternativa além de usar um DataTemplateSelector? Obrigado pela ajuda