自定义控件的内容无法绑定到控件的父级

时间:2011-02-28 15:34:55

标签: wpf xaml data-binding itemtemplate

我有以下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:ToolBarUserControl,其中包含与ToolBar ItemsSource属性绑定的实际Items tb:ToolBar(类型为IList继承ToolBar)。

  • ToolBarItem的{​​{1}} DataTemplate是从多个DataTemplate中选出的(根据项目类型)。

  • 属于tb:ToolBarControl的DataTemplate非常简单 - 它只包含绑定到ContentPresenter的属性Content的{​​{1}}。

  • tb:ToolBarControl不是出于技术原因tb:ToolBarControl,只有UserControl的{​​{1}}属性DependencyObject

    < / LI>

为什么Content无法引用object

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我在这里遇到了类似的问题:

Bindings on child dependency object of usercontrol not working

DependencyObject没有DataContext,我认为这就是绑定不起作用的原因。而不是继承自'DependencyObject'尝试从FrameworkElement继承。