Articles in this section

How to expand selected TreeViewItemAdv on Button Click in WPF TreeViewAdv?

Setting IsExpanded property

In WPF TreeViewAdv , 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.

<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"
        Height="30"
        Click="Button_Click"
        Grid.Column="1"
        VerticalAlignment="Center" />
// --- MainWindow.xaml.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");
        }
    }
}

// --- ViewModel.cs ---
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);
        }
    }
}

// --- Model.cs ---
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)
Access denied
Access denied