private void PhoneItemLbx_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
           DependencyObject dep = (DependencyObject)e.OriginalSource;   //마우스 이벤트가 발생한 곳의 원본소스를 이용한다.
           while ((dep != null) && !(dep is ListViewItem))
           {
               dep = VisualTreeHelper.GetParent(dep);// 클릭한 대상중에 ListItem이 있으면 순회문 중단
           }
          
            if(dep == null)// 리스트뷰의 리스트 아이엠 외의 곳을 더블클릭한 것
                MessageBox.Show("you clicked empty space");
            else
            {// 리스트뷰의 특정 아이템을 더블 클릭한 것
                PhonebookItem item = (PhonebookItem)PhoneItemLbx.ItemContainerGenerator.ItemFromContainer(dep);
            }           

        }

 

 

RoutedEventArgs..::.OriginalSource 속성

부모 클래스에서 소스를 조정하기 전에 순수 적중 테스트에 의해 결정되는 원본 보고 소스를 가져옵니다.

VisualTreeHelper 클래스

시각적 트리의 노드와 관련된 일반적인 작업을 수행하는 유틸리티 메서드를 제공합니다.

GetParent > 표시 개체의 부모를 나타내는 DependencyObject 값을 반환합니다.

이 글은 스프링노트에서 작성되었습니다.

by 무위자연 2008. 10. 30. 10:49