【发布时间】:2011-10-18 09:30:30
【问题描述】:
我的代码看起来像这样:
<HierarchicalDataTemplate
DataType="{x:Type local:SomeType}"
ItemsSource="{Binding SomeOtherItems}"
>
<DockPanel Margin="4">
<DockPanel.ContextMenu>
<local:SomeContextMenu DataContext="{Binding}" />
</DockPanel.ContextMenu>
<CheckBox IsChecked="{Binding SomeBooleanProperty, Mode=TwoWay}" />
<TextBlock
Margin="4,0"
Text="{Binding Name}" />
</DockPanel>
</HierarchicalDataTemplate>
如果没有上下文菜单,一切都会按预期进行。但是当我添加这些行时:
<DockPanel.ContextMenu>
<local:SomeContextMenu DataContext="{Binding}" />
</DockPanel.ContextMenu>
对于使用 HierarchicalDataTemplate 的每个元素,我都会收到此(运行时)错误:
System.Windows.Data 错误:3:找不到提供 DataContext 的元素。 BindingExpression:(无路径);数据项=空;目标元素是 'SomeContextMenu' (Name='');目标属性是“DataContext”(类型“对象”)
为什么Bindings 对上下文菜单以外的所有内容都有效,但对上下文菜单无效?
【问题讨论】:
标签: c# .net wpf xaml data-binding