【发布时间】:2011-12-08 13:51:01
【问题描述】:
我的用户控件上下文菜单可见性无法绑定依赖属性。有什么想法吗?
这是我的 WPF 代码
<UserControl.ContextMenu>
<ContextMenu Visibility="{Binding ElementName=wellControl, Path=IsInCompactMode, Converter={StaticResource BooleanToVisibilityConverter}}">
<MenuItem Command="local:GCommands.Edit" />
<MenuItem Command="local:GCommands.Delete" />
<MenuItem Command="local:GCommands.ExportFcsFiles" />
<MenuItem Command="local:GCommands.BatchExportStatistics" />
<Separator/>
<MenuItem Command="local:GCommands.SaveAs" Header="Save As..." />
</ContextMenu>
</UserControl.ContextMenu>
如果我设置 Visibility="Hidden" 它将对我有用。 像这样:
<ContextMenu Visibility="Hidden"/>
如果用这个就不行了
<ContextMenu Visibility="{Binding ElementName=wellControl, Path=IsInCompactMode, Converter={StaticResource BooleanToVisibilityConverter}}">
我很确定 Visibility="{Binding ElementName=wellControl, Path=IsInCompactMode, Converter={StaticResource BooleanToVisibilityConverter}}" 没有问题,因为它适用于其他人。
这是我的依赖属性
public bool IsInCompactMode
{
get {return (bool)GetValue(IsInCompactModeProperty); }
set {SetValue(IsInCompactModeProperty, value); }
}
public static readonly DependencyProperty IsInCompactModeProperty =
DependencyProperty.Register("IsInCompactMode", typeof(bool), typeof(WellControl), new PropertyMetadata(false));
这个方法我试过了,好像还是不行,真是奇怪!!!
<ContextMenu x:Name="menu" IsOpen="{Binding ElementName=wellControl, Path=IsInCompactMode}">
我真的很困惑,怎么了? “Binding ElementName=wellControl, Path=IsInCompactMode”适用于用户控件的其他部分,只是不适用于奇怪的上下文菜单?没有意义
【问题讨论】:
-
为什么不呢?发生什么了?你想做什么?
-
有了这么多的信息,没人能帮助你……
-
抱歉各位,我是用手机发的,无法添加更多信息。
标签: wpf user-controls contextmenu