【发布时间】:2017-01-03 11:48:22
【问题描述】:
为什么在这种情况下绑定到附加属性不起作用。
我希望能够将 ContentPresenter 的 ContentTemplate 属性绑定到附加属性范围:ContextMenuExtension.HeaderDataTemplate。在下面的 xaml 中,我在样式设置器中设置了该属性,以使代码更短。我也尝试在 ContextMenu 对象上设置它。每次我收到错误:
BindingExpression path error: '(extent:ContextMenuExtension.HeaderDataTemplate)' property not found on 'object' ''ContextMenu' (Name='')'. BindingExpression:Path=(extent:ContextMenuExtension.HeaderDataTemplate); DataItem='ContextMenu' (Name=''); target element is 'ContentPresenter' (Name=''); target property is 'ContentTemplate' (type 'DataTemplate')
xaml:
<Style TargetType="{x:Type ContextMenu}" >
<Setter Property="extent:ContextMenuExtension.HeaderDataTemplate" Value="{StaticResource DataTemplate}"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Grid>
<AdornerDecorator>
<Border Margin="8" Padding="0 8 0 8" Background="White" Effect="{DynamicResource MDShadow2}"/>
</AdornerDecorator>
<Border Margin="8" Padding="0 8 0 8">
<StackPanel Orientation="Vertical">
<Grid HorizontalAlignment="Stretch" Margin="0 -8 0 0">
<ContentPresenter ContentTemplate="{Binding (extent:ContextMenuExtension.HeaderDataTemplate), RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
</StackPanel>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
【问题讨论】:
标签: wpf data-binding