在WPF中,我试图在列表框的项目上放置一个上下文菜单。当我运行我的应用程序并右键单击列表框中的某个项目时,菜单会弹出一瞬间然后再次关闭。我无法弄清楚我做错了什么。
这是我正在使用的代码:
<ListBox Grid.Column="0" Name="lsbAddedElements" Width="150" Margin="3,3,3,3"
SelectionMode="Multiple">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delete" Click="btnDeleteElement_Click"></MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
当窗口初始化时,列表框被绑定到代码中的ObservableCollection,因此项目管理在后面的代码中处理。
更新:
我可能需要补充一点,这是我为Excel制作的adin的一部分。我使用ExcelDNA连接到Excel,然后将句柄传递给此代码片段所属的WPF窗口。 这可能是上下文菜单以意想不到的方式表现的原因吗?
答案 0 :(得分:2)
我认为问题在于列表框项目正在集中。解决问题的一个简单方法是在列表框中设置上下文菜单,并在列表框中包含选定项目时启用/禁用上下文菜单项。