现在在遍历绑定数据源的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

解决方案 »

  1.   

    WPF的话不太懂,不过树目录加载都是一样的吧,都是把TreeNode加进去,我给你个思路:
    1、获取第一层的List<TreeNode>,这个在数据库中获取不难,2、给每个节点绑定一个获取数据事件,事件去获取该节点下的List<TreeNode>,
    然后给这个选中的节点绑定数据,刷新。基本上的话就搞定了3、判断获取List<TreeNode>是否为null,为null则表示是最底层的节点,则可以移除加载数据事件
      

  2.   

    wpf 跟winform差距太大了,private TreeNode SearchNode(TreeNode td, string selectParentNum)
      {
      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;
      }