/ / Pobierz listę widocznych elementów w TreeView WPF - c #, wpf, treeview

Uzyskaj listę widocznych elementów w TreeView WPF - c #, wpf, treeview

Przykładowa struktura TreeView

Próbuję znaleźć dobry sposób na uzyskanie widocznościelementy w TreeView WPF w C # w dowolnym momencie. Na przykład w tym przypadku spodziewam się, że: Brazylia, Kanada, małe zapasy, Tarte au sucre, Tourtiere, duże zapasy, Dania.

Większość moich badań doprowadziła mnie do przekonania, że ​​muszę powtórzyć wszystkie elementy i sprawdzić, czy są one widoczne indywidualnie. Czy istnieje lepsza wbudowana metoda, której mi brakuje?

Dzięki!

Odpowiedzi:

1 dla odpowiedzi № 1

O ile mi wiadomo, nie ma "wbudowanej" metody sprawdzania, czy wszyscy rodzice i potomkowie są rozszerzeni, tylko po ich iteracji można sprawdzić ich właściwości.

To powinno załatwić sprawę, aby wszystkie dzieci stały się rodzicami rozszerzonymi, a ich rodzice zostali dodani do listy.

List<TreeViewItem> expandedTVI = new List<TreeViewItem>();
foreach (TreeViewItem item in treeView1.Items)
{
if (item.HasItems && item.IsExpanded) //if it has children, and the parent is expanded
{
foreach (TreeViewItem child in item.Items)
expandedTVI.Add(child); //add the child to the list
}

expandedTVI.Add(item); //always add the parent to the list
}