Articles in this section
Category / Section

How to view the Selected Header of all Hierarchical levels in SfTreeNavigator

1 min read

This article describes how to view the Selected Header of all Hierarchical levels in SfTreeNavigator.

Set the NavigationMode property of SfTreeNavigator as Extended to view the Selected Header of all Hierarchical levels.

The following code example demonstrates the same.

XAML

<Window.DataContext>
   <local:ViewModel/>
</Window.DataContext>
<Grid>
   <navigation:SfTreeNavigator ItemsSource="{Binding TreeCollection}" NavigationMode="Extended">
      <navigation:SfTreeNavigator.ItemTemplate>
         <HierarchicalDataTemplate ItemsSource="{Binding SubItems}">
            <TextBlock Text="{Binding Header}"/>
         </HierarchicalDataTemplate>
      </navigation:SfTreeNavigator.ItemTemplate>
   </navigation:SfTreeNavigator>
</Grid>

 

C#

public class TreeModel : NotificationObject
  {
     private String _header;
     public String Header
      {
        get
        {
          return _header;
        }
        set
        {
          _header = value;
           RaisePropertyChanged("Header");
        }
      }
 
     private ObservableCollection<TreeModel> _subItems;
 
     public ObservableCollection<TreeModel> SubItems
      {
        get
        {
          return _subItems;
        }
        set
        {
          _subItems = value;
        }
      }
     public TreeModel()
      {
         SubItems = new ObservableCollection<TreeModel>();
      }
  }
public class NotificationObject : INotifyPropertyChanged
  {
     public void RaisePropertyChanged(string propName)
      {
 
         if (this.PropertyChanged != null)
               this.PropertyChanged(this, new PropertyChangedEventArgs(propName));
      }
     public event PropertyChangedEventHandler PropertyChanged;
  }
 
public class ViewModel
  {
     private ObservableCollection<TreeModel> _collection;
     public ObservableCollection<TreeModel> TreeCollection
      {
       get
        {
          return _collection;
        }
       set
        {
          _collection = value;
        }
      }
     TreeModel secondChild;
     private void AddChild(TreeModel child)
      {
        for (int i = 1; i <= 15; i++)
          {
            TreeModel firstChild = new TreeModel() { Header = child.Header.ToString()+ i.ToString() };
            child.SubItems.Add(firstChild);
            if(i%3 == 0)
              {
                for(int j = 1; j <= 15; j++)
                 {
                    secondChild = new TreeModel() { Header = firstChild.Header.ToString() + j.ToString() };
                    firstChild.SubItems.Add(secondChild);
                 }
              }
            else
              {
                for(int k = 1; k <= 10; k++)
                 {
                    secondChild = new TreeModel() { Header = firstChild.Header.ToString() + k.ToString() };
                    firstChild.SubItems.Add(secondChild);
                 }
              }
          }
      }
     public ViewModel()
      {
         TreeCollection = new ObservableCollection<TreeModel>();
         TreeModel WPF = new TreeModel() { Header = "WPF" };
         AddChild(WPF);
         TreeModel WinRT = new TreeModel() { Header = "WinRT" };
         AddChild(WinRT);
         TreeModel UWP = new TreeModel() { Header = "UWP" };
         AddChild(UWP);
         TreeCollection.Add(WPF);
         TreeCollection.Add(WinRT);
         TreeCollection.Add(UWP);
       }
  }

 

The Output for the above code is shown below:

 

 

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied