Articles in this section
Category / Section

How to expand selected TreeViewItemAdv on Button Click?

1 min read

Setting IsExpanded property

You can expand TreeViewItemAdv by using IsExpanded property. The following code example explains how to expand the selected item using the property IsExpanded on Button click. By Default, the IsExpanded property is set to False.

 

XAML

<syncfusion:TreeViewAdv ItemsSource="{Binding TreeItems}" x:Name="mainTreeview">
    <syncfusion:TreeViewAdv.ItemContainerStyle>
       <Style TargetType="{x:Type syncfusion:TreeViewItemAdv}">
         <Setter Property="IsExpanded" Value="{Binding IsExpanded,UpdateSourceTrigger=PropertyChanged}"/>
          </Style>
    </syncfusion:TreeViewAdv.ItemContainerStyle>
    <syncfusion:TreeViewAdv.ItemTemplate >
      <HierarchicalDataTemplate ItemsSource="{Binding SubItems}" >
       <StackPanel Orientation="Horizontal">
           <ContentPresenter Content="{Binding Header}" />
       </StackPanel>
      </HierarchicalDataTemplate>
    </syncfusion:TreeViewAdv.ItemTemplate>
</syncfusion:TreeViewAdv>
<Button Content="Expand Selected Item" Width="200" Click="Button_Click" Height="30" Grid.Column="1" VerticalAlignment="Center"/>

 

C#

Class: MainWindow.cs
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new ViewModel();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (mainTreeview.SelectedItem != null)
            {
             if (mainTreeview.SelectedItem is TreeViewItemAdv)
             {
                 (mainTreeview.SelectedItem as TreeViewItemAdv).IsExpanded = true;
                }
             else 
             {
               if (mainTreeview.SelectedItem is Model)
               {
              (mainTreeview.SelectedItem as Model).IsExpanded = true;
                }
             } 
            }
            else
            {
               MessageBox.Show("Before click Button select any one TreeViewitem");
            }
        }
}
Class: ViewModel
public class ViewModel
    {
        public ViewModel()
        {
            TreeItems = new ObservableCollection<Model>();
            PopulateData();
        }
        public ObservableCollection<Model> TreeItems { get; set; }
        //Root Node
        private void PopulateData()
        {
            for (int i = 0; i < 6; i++)
            {
                Model Root1 = new Model() { Header = "Root" + i };
                PopulateSubItems(Root1);
                TreeItems.Add(Root1);
            }
        }
        //Sub Node
        private void PopulateSubItems(Model Root)
        {
            for (int i = 1; i <= 1; i++)
            {
                Model SubItem1 = new Model() { Header = Root.Header + " Item" + i };
                Root.SubItems.Add(SubItem1);
            }
        }
    }
Class: Model
public class Model:INotifyPropertyChanged
    {
        public Model()
        {
            SubItems = new ObservableCollection<Model>();
        }
        private string _header;
        public string Header
        {
            get { return _header; }
            set
            {
                _header = value;
                raisepropertychanged("Header");
            }
        }
        private bool _isExpanded;
        public bool IsExpanded
        {
            get { return _isExpanded; }
            set 
            {
                _isExpanded = value;
                raisepropertychanged("IsExpanded");
            }
        }
        public ObservableCollection<Model> SubItems { get; set; }
        #region INotifyPropertyChanged Members
        public event PropertyChangedEventHandler PropertyChanged;
        public void raisepropertychanged(string name)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(name));
            }
        }
        #endregion
    }

 

 

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