У меня следующий XAML (упрощенный, без конечных тегов):
<Window Name="myWindow" DataContext="{Binding ElementName=myWindow}" >
<DockPanel>
<tb:ToolBar Name="toolbar" DockPanel.Dock="Top">
<tb:ToolBar.Items>
<tb:ToolBarControl Priority="-3">
<tb:ToolBarControl.Content>
<StackPanel Orientation="Horizontal">
<TextBlock>Maps:</TextBlock>
<ComboBox ItemsSource="{Binding Generator.Maps, ElementName=myWindow}">
Но привязка ComboBox
не удастся с
Не удается найти источник для связывания с
ссылка 'ElementName = myWindow'
Некоторые факты о пользовательских элементах управления:
tb:ToolBar
- это UserControl
, который содержит фактический ToolBar
с ItemsSource
, привязанным к свойству Items
tb:ToolBar
(наследуемого типа IList
).
ToolBar
ToolBarItem
DataTemplate
выбирается из нескольких DataTemplate
с (в зависимости от типа предмета).
DataTemplate, принадлежащий tb:ToolBarControl
, очень прост - он содержит ContentPresenter
, привязанный к свойству Content
tb:ToolBarControl
.
tb:ToolBarControl
не по техническим причинам UserControl
, это просто DependencyObject
со свойством Content
типа object
.
Почему ComboBox
не может ссылаться на Window
?
Спасибо за любую помощь!