2010-02-04 5 views
0

목록보기에서 특정 항목을 두 번 클릭하면 특정 창이 열리는 WPF ListView가 있지만 문제가 있습니다. GridViewColumn을 두 번 클릭하면 특정 윈도우가 열립니다. 발신자가 gridviewColumn 또는 listView 항목인지 감지하는 방법이 있습니까? 감사 이벤트 처리기에서 일반적으로 두 개의 인수가 있습니다. 첫 번째는 보낸 사람 개체이고 두 번째 이벤트 개체는 EventArguments 개체입니다. 감사합니다.WPF ListView GridViewColumn Double Click

답변

0

당신은 "있다"연산자를 사용하여 유형에 보낸 개체를 확인할 수 있습니다

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

죄송하지만, GRIDVIEW GridViewColumn 다릅니다 : 당신은 ListViewItemContainerStyle이의 이벤트 핸들러를 설정하여 쉽게 그렇게 할 수 있습니다. 그래서 어딘가에서 – Kevin

+0

을 사용할 수 없으므로 창을 여는 이벤트 핸들러가 있어야합니다. 그렇습니까? 해당 이벤트 처리기에서 발신자가 어떤 유형인지 확인하십시오. –

+0

분명히 이것은 @ Muad의 답변에있는 오타입니다. 다음과 같은 경우 어떻게됩니까? if (ListViewItem! = null 인 발신자) dothis(); – slugster

3

을 난 당신이 ListViewMouseDoubleClick 이벤트를 처리한다고 가정? 대신 ListViewItem에서 해당 이벤트를 처리해야하며 ListView 이벤트는 처리하면 안됩니다. 나는 머리글을 기본적으로하는이 아니라 그리드 자체를 시도하고,

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

나는 이것이 포스터의 질문에 대답하는 것 같지는 않지만 내 대답을했다! 감사! –