2010-02-04 143 views
0

我有一個WPF ListView,當雙擊列表視圖中的某個項目時打開某個窗口,但我遇到了問題。當我雙擊GridViewColumn時,也會打開一個特定的窗口。 有沒有辦法來檢測發件人是一個gridviewColumn或listView項目? 謝謝WPF ListView GridViewColumn雙擊打印

回答

0

在你的事件處理程序中,你通常有兩個參數,第一個是你的sender對象,第二個是你的EventArguments對象。

您可以通過使用「是」經營者檢查該類型發送對象:

private void MyEvent(object sender,EventArgs args) 
{ 
    if (sender is GridView) dothis(); 
} 
+0

很抱歉,但一個GridView比GridViewColumn不同,我想基本上做的是接頭,而不是網格本身。所以這不起作用 – Kevin 2010-02-04 00:14:00

+0

某處你必須有一個打開窗口的事件處理程序,是的?在所述事件處理程序中只檢查發件人以查看它是什麼類型。 – 2010-02-04 00:33:51

+0

這真的只是@ Muad的答案中的一個錯字?如果你有:if(sender as ListViewItem!= null)dothis(); – slugster 2010-02-04 00:37:07

3

我假設你處理MouseDoubleClick事件ListView的?相反,您應該在ListViewItem上處理該事件,而不是ListView本身。你可以做到這一點很容易通過設置在事件處理程序的ListViewItemContainerStyle

... 
<ListView ...> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <EventSetter Event="MouseDoubleClick" Handler="YourHandler" /> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 
... 
+0

我不認爲這回答了海報的問題,但它回答了我的問題!謝謝! – 2010-02-15 02:37:08