WPF上下文菜单未保持打开状态

时间:2012-09-20 06:16:13

标签: c# wpf listbox contextmenu

在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窗口。 这可能是上下文菜单以意想不到的方式表现的原因吗?

1 个答案:

答案 0 :(得分:2)

我认为问题在于列表框项目正在集中。解决问题的一个简单方法是在列表框中设置上下文菜单,并在列表框中包含选定项目时启用/禁用上下文菜单项。