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にバインドされるため、アイテム管理はコードビハインドで処理されます。

アップデート:

これは私がExcel用に作成しているadinの一部であることを追加する必要があるかもしれません。ExcelDNAを使用してExcelに接続し、このコードスニペットが含まれているWPFウィンドウにハンドルを渡します。これが、コンテキストメニューが予期しない動作をする理由でしょうか?

4

1 に答える 1

2

I think the problem is that the listbox item is getting focused. A simple solution to your problem is to set the context menu on the list box and enable/disable context menu items if the list box has a selected item.

于 2012-09-20T07:14:00.920 に答える