2014-03-26 3 views
-2

트리 뷰에서 선택한 항목의 헤더를 검색하려고합니다.트리 뷰에서 선택한 항목을 검색하는 방법

내 코드 : XAML :

<TreeView x:Name="TreeView" HorizontalAlignment="Left" Margin="10,22,0,10" Width="223" SelectedItemChanged="item" > 
     <TreeViewItem x:Name="Accueil" Header="Accueil" RenderTransformOrigin="0.502,-1.125"/> 
     <TreeViewItem x:Name="Comptes" Header="Comptes" IsExpanded="True"/> 
    </TreeView> 

C 번호 : Comptes Items.Count : 1

private void item(object sender, RoutedPropertyChangedEventArgs<object> e) 
    { 
     string compteselectionne = Convert.ToString(TreeView.SelectedItem); 
     if (compteselectionne=="Comptes") 
     { 
      ListeComptes.Visibility = Visibility.Visible; 
     } 
     ListeComptes.Visibility = Visibility.Hidden; 
    } 

이 코드는 System.Windows.Controls.TreeViewItem 헤더 같은 날 일을 보여줍니다

미리 감사드립니다.

답변

0

당신은 또한 할 수있는 다음과 같은

private void item(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    TreeView tree = sender as TreeView; 
    TreeViewItem item = tree.SelectedItem as TreeViewItem; 
} 
2

제대로 MVVM 접근 당신이 TreeViewItemTwoWay (또는 OneWayToSource) 모드에서 IsSelected에 바인딩이 속성으로 찾고해야을 사용하는 경우 귀하의 ViewModels에 사실이 있어야하고 거기에 다른 모든 것이 있어야합니다.

예 나는 그것을 할 거라고 방법 :

<TreeView ItemsSource="{Binding MyCollectionOfItems}"> 
    <TreeView.Resources> 
     <Style TargetType="{x:Type TreeViewItem}"> 
      <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> 
      <Setter Property="Header" Value="{Binding HeaderText}" /> 
     </Style> 
    </TreeView.Resources> 
</TreeView> 

코드에 내가 쉽게 찾을 수 있습니다 : (내 뷰 모델이 헤더를 설정 IsSelected & HeaderText 전화에 속성이)

XAML을

//null result of the following means there's no selection 
var selectedItem = MyCollectionOfItems.SingleOrDefault(x => x.IsSelected) 
+1

사이드 노트에서 동일한 기술을 사용하면보기가 c로 지원하는 경우 여러 선택을 가져올 수도 있습니다 'SingleOrDefault'를'Where'에 걸기 (또는 원한다면'FirstOrDefault'조차도) – Maverik

관련 문제