2012-09-20 142 views
1

在WPF中,我試圖在列表框的項目上放置一個上下文菜單。當我運行我的應用程序並右鍵單擊列表框中的某個項目時,菜單彈出一秒鐘,然後再次關閉。我無法弄清楚我做錯了什麼。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的代碼時被初始化的窗口,因此項目管理在代碼照顧後面。

UPDATE:

我可能需要補充的是thsi是ADIN我正在爲Excel中的一部分。我使用ExcelDNA連接到Excel,然後將句柄傳遞到此代碼片段所包含的WPF窗口。 這可能是上下文菜單行爲意外的原因嗎?

+0

你是否嘗試用進行調試 - 在該事件上設置了斷點。也可能檢查堆棧 – Danield

+0

按照我的建議做了,並且斷點沒有被擊中(在ContextMenuOpening事件處理程序上設置的斷點也沒有)。奇怪的。 –

+0

請分享您ListView的itemtemplate – pchajer

回答

2

我認爲問題在於列表框項目變得越來越集中。解決問題的一個簡單方法是在列表框上設置上下文菜單,並在列表框中包含選定項目時啓用/禁用上下文菜單項。

相關問題