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 № 1O 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
}