WPF - привязка данных к StackPanel с использованием шаблонов данных
Я изменил свой вопрос, так как он изменил фокус при пробовании. Я сузил проблему до следующего ...
Я пытаюсь привязать выбранный элемент TreeView к StackPanel (или некоторому другому контейнеру, который может содержать пользовательские элементы управления). Этот контейнер будет отображать UserControl, в зависимости от типа выбранного элемента.
Вот xaml StackPanel (и дерево, и панель стека находятся в одном окне ==> другой столбец сетки)
<StackPanel Grid.Column="2" MinWidth="500" DataContext="{Binding ElementName=myTree, Path=SelectedItem, Mode=OneWay}">
<StackPanel.Resources>
<DataTemplate DataType="{x:Type mvTypes:MyTypeA}">
<controls:UserControlA DataContext="{Binding}" />
</DataTemplate>
<DataTemplate DataType="{x:Type mvTypes:MyTypeB}">
<controls:UserControlB DataContext="{Binding}" />
</DataTemplate>
</StackPanel.Resources>
</StackPanel>
Когда я размещаю пользовательский элемент управления непосредственно под панелью стека (а не в ресурсах), он отображает его с выбранным объектом в качестве своего текста данных. Предположим, если я поместу в него TextBox, он покажет правильный тип выбранного элемента.
<TextBox Name="textBox1" Text="{Binding}" />
По какой-то причине размещение его в DataTemplate (даже без установки DataType) приводит к тому, что ничего не отображается.
Любые предложения. Я думаю, что, возможно, StackPanel не подходит для этого, хотя я не могу найти другие элементы управления, которые выглядят как контейнеры, подобные этой.
Заранее спасибо.