Когда я пытаюсь указать несколько DataTemplates для использования ContentControl, чтобы использовать правильный (основанный на типе), я получаю контент, который является просто значением Content ToString().
<ContentControl DataContext="{Binding MyTreeRootViewModels}" Content="{Binding /, Path=CurrentlySelectedTreeViewModel}">
<ContentControl.Resources>
<DataTemplate DataType="x:Type vm:TypeAViewModel">
<StackPanel>
<local:TypeAUserControl />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="x:Type vm:TypeBViewModel">
<StackPanel>
<local:TypeBUserControl />
</StackPanel>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
В приведенном выше примере я увижу "MyApp.ViewModel.TypeAViewModel", отображаемый, когда дерево node TypeAViewModel возвращается в CurrentSelectedTreeViewModel. Я ожидаю увидеть мой TypeAViewModelUserControl.
Я попытался поместить один текст TextBlock Text = "TESTING" / > элемент в одном из моих DataTemplates, чтобы увидеть, связана ли проблема с моими пользовательскими элементами управления. Тот же результат.
Любые идеи, что я делаю неправильно?
(Кстати, CurrentSelectedTreeViewModel является свойством, которое возвращает выбранный в данный момент node в моем древовидном представлении. Кажется, что все работает нормально - поскольку я выбираю узлы в дереве, появляется правильное имя типа для node ContentControl).