Когда я пытаюсь указать несколько DataTemplates для использования ContentControl так, чтобы использовался правильный (на основе Type), я получаю Content, который является просто значением ToString () Content.
<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», отображаемый, когда узел дерева TypeAViewModel возвращается с помощью CurrentSelectedTreeViewModel.Я ожидаю увидеть мой TypeAViewModelUserControl.
Я пытался поставить одинэлемент в одном из моих шаблонов данных, просто чтобы увидеть, была ли проблема связана с моими пользовательскими элементами управления.Тот же результат.
Есть идеи, что я делаю неправильно?
(Кстати, CurrentSelectedTreeViewModel - это свойство, которое возвращает текущий выбранный узел в моем древовидном представлении. Кажется, что оно работает просто отлично -когда я выбираю узлы в дереве, появляется правильное имя типа для узла ContentControl).