WPF 如何遍历TreeView?

XAML代码中有关TreeView的部分是这样的:

<TreeView x:Name="myTree"  ItemsSource="{Binding nodes, Mode=TwoWay}">
                        <TreeView.ItemTemplate>
                            <HierarchicalDataTemplate ItemsSource="{Binding nodes,Mode=TwoWay}">
                                <StackPanel>
                                    <TextBlock Text="{Binding infoStr,Mode=TwoWay}"></TextBlock>
                                </StackPanel>
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>

在C#代码中,设置了TreeView的itemsSource为下面的一个对象:

public class TreeViewModel
{       
    public ObservableCollection<TreeViewModel> nodes { get; set; } // 子节点列表
    public NodeInfo nodeInfo; // 本节点的信息
}

现在我要遍历TreeView去查找符合对应的TreeViewModel信息的节点,然后将焦点设置为该节点。但是我遇到了一个迟迟不能解决的问题:下面的这段代码总是返回null。

container.ItemContainerGenerator.ContainerFromIndex(i);

我查询了无数的资料,终于发现要TreeView的节点要展开才能获取到。但是在代码里加了UpdateLayout()让他去自动展开,返回还是null,而且节点并没有预期展开。有没有大佬能耐心解答一下?

https://www.cnblogs.com/zqhxl/p/4495423.html

可以用递归方式遍历。例子网上就有,比如参考这个:https://blog.csdn.net/weixin_30852367/article/details/97788649