C# WPF ListView GridViewColumn双击
我有一个WPF列表视图,当双击列表视图中的某个项目时,它会打开一个特定的窗口,但我有一个问题。当我双击GridViewColumn时,也会打开一个特定的窗口。 有没有办法检测发送者是gridviewColumn还是listView项?C# WPF ListView GridViewColumn双击,c#,xaml,listview,C#,Xaml,Listview,我有一个WPF列表视图,当双击列表视图中的某个项目时,它会打开一个特定的窗口,但我有一个问题。当我双击GridViewColumn时,也会打开一个特定的窗口。 有没有办法检测发送者是gridviewColumn还是listView项? 谢谢在事件处理程序中,您通常有两个参数,第一个是发件人对象,第二个是EventArguments对象 您可以使用“is”运算符检查发送者对象的类型: private void MyEvent(object sender,EventArgs args ) {
谢谢在事件处理程序中,您通常有两个参数,第一个是发件人对象,第二个是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运算符是的,我看到了。我说的是你把发信人比作的那种类型。我不认为这回答了海报的问题,但它回答了我的问题!谢谢我不认为这回答了海报的问题,但它回答了我的问题!谢谢