我的用户控件上下文菜单的可见性无法绑定依赖属性。有什么想法吗?
以下是我的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”设置为“true”,它对我有用。就像这样:
<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”对于用户控件的其他部分有效,只是对于奇怪的上下文菜单无效吗?这毫无意义。