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

Posted glyson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了界面初始化更新异常,更新工作要放在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();
}

以上是关于界面初始化更新异常,更新工作要放在Loaded事件中,且注意使用UpdateLayout();的主要内容,如果未能解决你的问题,请参考以下文章

Python Cloud Dataflow 中无法更新工作状态异常

WPF,`Loaded` 事件仅在第一次视图模型初始化时触发,但不会在后续视图模型初始化时触发

怎么阻止vue的数据更新刷新事件

批量更新执行流程如何工作

Navicat创建事件,定时更新数据库

C# 多线程更新界面的第二种方法