我有以下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
的{{1}} DataTemplate
是从多个DataTemplate
中选出的(根据项目类型)。
属于tb:ToolBarControl
的DataTemplate非常简单 - 它只包含绑定到ContentPresenter
的属性Content
的{{1}}。
tb:ToolBarControl
不是出于技术原因tb:ToolBarControl
,只有UserControl
的{{1}}属性DependencyObject
。
为什么Content
无法引用object
?
感谢您的帮助!
答案 0 :(得分:3)
我在这里遇到了类似的问题:
Bindings on child dependency object of usercontrol not working
DependencyObject没有DataContext,我认为这就是绑定不起作用的原因。而不是继承自'DependencyObject'尝试从FrameworkElement继承。