В настоящее время у меня проблема с привязкой к элементу, который находится в шаблоне DataTemplate TabControl.
TabControl работает отлично и отображает слово «Тест». Элемент, к которому я хочу привязаться, - это метка. ПРИМЕЧАНИЕ. Я не хочу привязывать содержимое ярлыка к модели представления, я хочу привязать его к содержимому ярлыка, потому что это может быть не только текст, но и другое содержимое.
<ContentPresenter Content="{Binding Path=Content, ElementName=MyLabel}" />
<TabControl x:Name="MyTabControl" ItemsSource="{Binding Path=LogPanels}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Title}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate DataType="{x:Type viewModels:MyLogPanelViewModel}">
<Label x:Name="MyLabel" Content="Test" />
</DataTemplate>
<!-- Several other DataTemplates. -->
</TabControl.ContentTemplate>
</TabControl>
Очевидно, это не работает, и Visual Studio 2013 отображает сообщение в окне вывода:
Не удается найти источник привязки со ссылкой "ElementName = MyLabel". BindingExpression: Путь = Содержимое; DataItem = null; целевой элемент - ContentPresenter (Name = ''); целевым свойством является Content (тип Object)
Вопрос: Как лучше всего этого добиться?
Фоновая информация: это упрощенный случай, в последнем примере я бы хотел, чтобы Label был UserControl, который предоставляет собственную контекстную информацию (меню, кнопки и т. д.) для среды за пределами TabControl. .