码迷,mamicode.com
首页 > Windows程序 > 详细

wpf 虚拟化操作异常

时间:2017-01-10 11:29:25      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:code   ever   sdn   span   cte   force   als   blog   contain   

根据这篇文章提供的方法会导致搜索变慢及有时候搜索不到 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 虚拟化操作异常

标签:code   ever   sdn   span   cte   force   als   blog   contain   

原文地址:http://www.cnblogs.com/yangleiWPF/p/6268534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!