现在在遍历绑定数据源的treeview时遇到一个问题:使用 ItemContainerGenerator.ContainerFromItem(item)只能在TreeView本身第一级产生作用,更深层的调用时ItemContainerGenerator._status为NotStarted。
但是加上这句话后: <Style TargetType="TreeViewItem"><Setter Property="IsExpanded"
Value="{Binding IsExpanded,
Mode=OneWay,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}}" />
</Style>
我在打开一个节点时,就会把我所有的节点都打开了,我的节点比较多,只能打开一个初始化一个!
我的问题就是:怎么遍历treeview的item
但是加上这句话后: <Style TargetType="TreeViewItem"><Setter Property="IsExpanded"
Value="{Binding IsExpanded,
Mode=OneWay,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}}" />
</Style>
我在打开一个节点时,就会把我所有的节点都打开了,我的节点比较多,只能打开一个初始化一个!
我的问题就是:怎么遍历treeview的item
1、获取第一层的List<TreeNode>,这个在数据库中获取不难,2、给每个节点绑定一个获取数据事件,事件去获取该节点下的List<TreeNode>,
然后给这个选中的节点绑定数据,刷新。基本上的话就搞定了3、判断获取List<TreeNode>是否为null,为null则表示是最底层的节点,则可以移除加载数据事件
{
if (td.ToolTipText == selectParentNum)
{
return td;
}
TreeNode targetNode = null;
foreach (TreeNode childNodes in td.Nodes)
{
targetNode = SearchNode(childNodes, selectParentNum);
if (targetNode != null)
break;
}
return targetNode;
}