Связывание с элементами UserControl с пользовательским свойством коллекции
Этот вопрос является "продолжением"этот вопрос (Я применил ответ, но он все равно не будет работать).
Я пытаюсь создать расширенный элемент управления ToolBar для модульного приложения, которое может загружать его элементы из нескольких источников данных (но это не та проблема, которую я пытаюсь решить сейчас, теперь я хочу, чтобы она работала при обычном использовании Панель инструментов найдена в WPF).
Короче говоря:Я хочу, чтобы элементы ToolBar могли связываться с родителями tb: ToolBar.
У меня есть следующий код XAML:
<Window Name="myWindow" DataContext="{Binding ElementName=myWindow}" >
<DockPanel>
<tb:ToolBar Name="toolbar" DockPanel.Dock="Top" DataContext="{Binding ElementName=myWindow}>
<tb:ToolBar.Items>
<tb:ToolBarControl Priority="-3">
<tb:ToolBarControl.Content>
<StackPanel Orientation="Horizontal">
<TextBlock>Maps:</TextBlock>
<ComboBox ItemsSource="{Binding SomeProperty, ElementName=myWindow}">
Некоторая информация о типах:
tb:ToolBar
являетсяUserControl
со свойством зависимостиItems
типаFreezableCollection<ToolBarControl>
.
tb:ToolBarControl
являетсяUserControl
с шаблоном в значительной степени идентичнаШаблон ContentControl.
Проблема в том, что связывание вComboBox
терпит неудачу (с обычным «Не удается найти источник для привязки со ссылкой»), потому что его DataContext имеет значение null.
Почему?
РЕДАКТИРОВАТЬ: Суть вопроса: «Почему DataContext не наследуется?», Без него привязки не могут работать.
EDIT2:
Вот XAML дляtb:ToolBar
:
<UserControl ... Name="toolBarControl">
<ToolBarTray>
<ToolBar ItemsSource="{Binding Items, ElementName=toolBarControl}" Name="toolBar" ToolBarTray.IsLocked="True" VerticalAlignment="Top" Height="26">
РЕДАКТИРОВАТЬ 3:
Я опубликовал пример того, что работает, а что нет:http://pastebin.com/Tyt1Xtvg
Спасибо за ваши ответы.