/ / Obter lista de elementos visíveis no WPF TreeView - c #, wpf, treeview

Obter lista de elementos visíveis no WPF TreeView - c #, wpf, treeview

Exemplo de estrutura TreeView

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

Tanto 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
}