界面初始化更新异常,更新工作要放在Loaded事件中,且注意使用UpdateLayout();

要放在Loaded事件中

private void Expand()
{
List<int> list = new List<int>();
TreeNodeModel node = vm.selNode;
while (node != null)
{
if (node.Parent != null)
list.Insert(0, node.Parent.Children.IndexOf(node));
else
list.Insert(0, 0);
node = node.Parent;
}
ItemsControl item = tvIns;
foreach (int i in list)
{
item = item.ItemContainerGenerator.ContainerFromIndex(i) as ItemsControl;
if (item == null) break;
(item as TreeViewItem).IsExpanded = true;
item.UpdateLayout();
}
if (item != null)
(item as TreeViewItem).BringIntoView();
}

posted on 2018-06-29 21:39  Glyson  阅读(183)  评论(0编辑  收藏  举报