C# WPF ListView GridViewColumn双击

C# WPF ListView GridViewColumn双击,c#,xaml,listview,C#,Xaml,Listview,我有一个WPF列表视图,当双击列表视图中的某个项目时,它会打开一个特定的窗口,但我有一个问题。当我双击GridViewColumn时,也会打开一个特定的窗口。 有没有办法检测发送者是gridviewColumn还是listView项? 谢谢在事件处理程序中,您通常有两个参数,第一个是发件人对象,第二个是EventArguments对象 您可以使用“is”运算符检查发送者对象的类型: private void MyEvent(object sender,EventArgs args ) {

我有一个WPF列表视图,当双击列表视图中的某个项目时,它会打开一个特定的窗口,但我有一个问题。当我双击GridViewColumn时,也会打开一个特定的窗口。 有没有办法检测发送者是gridviewColumn还是listView项?
谢谢

在事件处理程序中,您通常有两个参数,第一个是发件人对象,第二个是EventArguments对象

您可以使用“is”运算符检查发送者对象的类型:

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

在事件处理程序中,通常有两个参数,第一个是发送方对象,第二个是EventArguments对象

您可以使用“is”运算符检查发送者对象的类型:

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

我假设您正在处理
ListView
MouseDoubleClick
事件?相反,您应该在
ListViewItem
上处理该事件,而不是在
ListView
本身上处理该事件。通过在
ListView
ItemContainerStyle
中设置事件处理程序,您可以轻松做到这一点:

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

我假设您正在处理
列表视图的
鼠标双击事件?相反,您应该在
ListViewItem
上处理该事件,而不是在
ListView
本身上处理该事件。通过在
ListView
ItemContainerStyle
中设置事件处理程序,您可以轻松做到这一点:

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

很抱歉,gridView与GridViewColumn不同,我主要是处理标题,而不是网格本身。因此,如果必须有一个打开窗口的事件处理程序,那么这将不起作用,是吗?在所说的事件处理程序中,只需检查发送者,看看它是什么类型。当然,这只是@Muad答案中的一个输入错误?如果有:if(发送者为ListViewItem!=null)dothis();我用的是IS运算符,不是AS运算符是的,我看到了。我刚才说的是您将发件人与之进行比较的类型。对不起,gridView与GridViewColumn不同,我尝试的基本上是标题,而不是网格本身。因此,如果必须有一个打开窗口的事件处理程序,那么这将不起作用,是吗?在所说的事件处理程序中,只需检查发送者,看看它是什么类型。当然,这只是@Muad答案中的一个输入错误?如果有:if(发送者为ListViewItem!=null)dothis();我用的是IS运算符,不是AS运算符是的,我看到了。我说的是你把发信人比作的那种类型。我不认为这回答了海报的问题,但它回答了我的问题!谢谢我不认为这回答了海报的问题,但它回答了我的问题!谢谢