Eu estou tentando encontrar uma boa maneira de obter o visívelelementos em um TreeView do WPF em C # em qualquer ponto no tempo. Por exemplo, neste caso, eu esperaria ter: Brasil, Canadá, pequeno estoque, Tarte au sucre, Tourtiere, grande estoque, Dinamarca.
A maior parte da minha pesquisa me levou a acreditar que preciso fazer uma iteração sobre todos os itens e ver se eles são visíveis individualmente. Existe um melhor método embutido que eu estou perdendo?
Obrigado!
Respostas:
1 para resposta № 1Tanto quanto eu sei, não há um método "inbuilt" para verificar se todos os pais e filhos são expandidos, só depois de iterar sobre eles você pode verificar suas propriedades.
Isso deve fazer o truque para obter todos os filhos em qualquer pai expandido e seu respectivo pai adicionado a uma lista.
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
}