我有一些菜单项,它们的 Visibility
属性由转换器控制。大多数情况下,这些菜单项具有相同的可见性逻辑(相同的转换器,相同的参数)。为了避免重复输入,我想将它们虚拟组合在一起,只设置一次可见性。
我知道我可以通过嵌套菜单项来实现这个目的。还有其他方法吗?
我有一些菜单项,它们的 Visibility
属性由转换器控制。大多数情况下,这些菜单项具有相同的可见性逻辑(相同的转换器,相同的参数)。为了避免重复输入,我想将它们虚拟组合在一起,只设置一次可见性。
我知道我可以通过嵌套菜单项来实现这个目的。还有其他方法吗?
我不太清楚您想要做什么,但我猜测样式会很有用。我会举个例子。在这里,我创建了一个带有上下文菜单的网格按钮。在按钮的资源中,我创建了一个未命名的菜单项样式。在样式中,您可以通过替换我创建的绑定来指定可见性应该如何行为。
<Window x:Class="StackOverflow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Testing" VerticalAlignment="Center" HorizontalAlignment="Center">
<Button.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Visibility" Value="{Binding SomeBinding, Converter=SomeConverter}"/>
</Style>
</Button.Resources>
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="1"/>
<MenuItem Header="2"/>
<MenuItem Header="3"/>
<MenuItem Header="4"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
</Window>