我的 WPF 窗口上有一个对象列表,所有对象都有一个上下文菜单,允许用户将项目复制或移动到不同的面板中(所以上下文菜单的 ItemsSource 是这个面板列表,以及“复制”和“移动”是子菜单项)。但是,我在对象中定义了一个“CanCopy”属性,该属性确定该对象是否可以实际复制。如何根据此属性的值显示/隐藏此 MenuItem?我的问题似乎在于定义此变量的附加菜单项级别。
起初我尝试过这样的事情,但显然这不是我想要的,因为这会将 PanelName MenuItem 加倍到两个 MenuItem 容器中:
<MenuItem Header="Panels..." ItemsSource="{Binding PanelsList}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding PanelName}">
<MenuItem Header="Copy" Visibility="{Binding CanCopy,Converter={StaticResource BoolToHiddenConverter}}"/>
<MenuItem Header="Move"/>
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
建议?