我的WPF窗口中有一个对象列表,它们都有一个上下文菜单,允许用户将项目复制或移动到不同的面板中(因此Context菜单的ItemsSource是这个面板列表,并且“复制”和“移动”是子菜单项。但是,我在对象中定义了一个“CanCopy”属性,用于确定是否可以实际复制该对象。如何根据此属性的值显示/隐藏此MenuItem?我的问题似乎是在定义这个变量的附加级别的MenuItems。
起初我尝试过类似的东西,但显然它并不是我想要的,因为这会将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>
建议?
答案 0 :(得分:0)
添加内容而不是ItemTemplate
<MenuItem Header="Panels..." ItemsSource="{Binding PanelsList}">
<MenuItem Header="{Binding PanelName}">
<MenuItem Header="Copy" Visibility="{Binding CanCopy,Converter={StaticResource BoolToHiddenConverter}}"/>
<MenuItem Header="Move"/>
</MenuItem>
</MenuItem>