wpf 虚拟化操作异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 虚拟化操作异常相关的知识,希望对你有一定的参考价值。
根据这篇文章提供的方法会导致搜索变慢及有时候搜索不到 WPF中ItemsControl应用虚拟化时找到子元素的方法,
具体可以修改为下面代码:
//Action action = () => //{ try { TreeViewItem itemSelected = null; //Force to generate every treeView item by using scroll item if (virtualizingPanel != null) { try { if (isCallEnd) { isCallEnd = false; virtualizingPanel.CallBringIndexIntoView(selectedIndex); isCallEnd = true; } } catch (System.Exception ex) { Logger.Error("CallBringIndexIntoView exception : ", ex); } itemSelected = (TreeViewItem)_currentSelectedItem.ItemContainerGenerator.ContainerFromIndex(selectedIndex); }
增加变量isCallEnd 用来防止循环调用,-》CallBringIndexIntoView-》ItemContainerGenerator_StatusChanged-》treeViewItem_BringIntoView-》CallBringIndexIntoView
以上是关于wpf 虚拟化操作异常的主要内容,如果未能解决你的问题,请参考以下文章