1

在 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,因此项目管理在后面的代码中处理。

更新:

我可能需要补充一点,thsi 是我为 Excel 制作的 adin 的一部分。我正在使用 ExcelDNA 连接到 Excel,然后将句柄传递给该代码片段所属的 WPF 窗口。这可能是上下文菜单以意想不到的方式表现的原因吗?

4

1 回答 1

2

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

于 2012-09-20T07:14:00.920 回答