我有一個數據綁定的TreeView。我想展開TreeViewItems,但只能深入一下讓我說3。WPF Treeview只展開到一定深度?
通常我會發出一個TreeViewItem.ExpandSubtree(),但它擴展了一切,所以我採取了刺我自己的,因爲它應該是相當簡單的權利?
這裏是我試過了,我做了下面的方法,然後ItemContainerGenerator通過我的樹視圖它和收集物品從樹視圖,用3
private void ExpandTree(ItemContainerGenerator gen, ItemCollection items, int depth)
{
depth--;
foreach (var item in items)
{
TreeViewItem itm = (TreeViewItem)gen.ContainerFromItem(item);
if (itm == null) continue;
itm.IsExpanded = true;
if(depth!=0 && itm.Items.Count > 0) ExpandTree(itm.ItemContainerGenerator,itm.Items,depth);
}
}
問題的深度是第一它遞歸調用返回ItemContainerGenerator的所有子項都具有「NotStarted」狀態,並在每次調用時返回null。雖然我陷入空值意味着樹只能打開到1的深度,而不是我想要的3。
我在這裏錯過了什麼?