2010-02-04 58 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