2014-02-10 2 views
1

wpf 프로젝트에서 마우스 클릭으로 상호 작용할 트리보기 컨트롤을 사용하고 있습니다. 내 treeview datacontext에서 데이터를 가져 오는 계층 적 템플릿이 있습니다.모든 마우스 선택 이벤트 처리 방법 WPF TreeView

<TreeView x:Name="bolumler" ItemsSource="{Binding}" Margin="-282,7,618,206" Grid.RowSpan="3"> 
     <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:SectionEntity}"> 
       <TreeViewItem Header="{Binding Text}"/>      
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate>   
    </TreeView> 

wpf treeview 컨트롤의 계층 적 데이터를 올바르게 보여줍니다. 하지만 마우스 클릭 이벤트를 바인딩 할 수는 없습니다. 이벤트를 처리하지 않습니다. 계층 적 템플릿을 사용하여 wpf treeview에서 마우스 이벤트에 대한 안정적인 예제를 제시 할 수 있습니까?

답변

1

단순히 항목 템플릿 내에서 Textblock 요소를 사용하십시오. 그 후에는 Treeview에서 SelectedItemChanged 이벤트에 쉽게 액세스 할 수 있습니다.

 <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:SectionEntity}"> 
       <TextBlock Text="{Binding Text}"></TextBlock> 
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate> 
-1

TreeView이 마우스 이벤트를 처리하지 않는다는 것이 무엇을 의미합니까? 그건 말도 안되는 진술입니다. UIElement 클래스 (실질적으로 모든 클래스)를 확장하는 WPF의 모든 컨트롤은 UIElement 클래스에 정의 된 모든 이벤트에 액세스 할 수 있습니다. 여기에는 많은 마우스 이벤트가 포함됩니다.

아마도 여기 대신 MSDN을 사용했다면이 모든 것을 스스로 발견했을 것입니다. TreeView인 모든 이벤트를 확인하려면 MSDN의 TreeView Events 페이지를 방문하십시오. 실제로는이 있습니다.