treelist设置展开卡顿

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了treelist设置展开卡顿相关的知识,希望对你有一定的参考价值。

treelist设置展开卡顿:Devexpress中的TreeList是经常用到的数据浏览管理控件,它的数据加载方式通常是赋予DataSource数据源,并指定ParentFieldName和KeyFieldName来确定"父子"关系,这种绑定方式操作简单,但加载和操作十分卡顿(100个节点),用户体验非常差。

推荐使用AppendNode逐条加载,此方法有多个重载方法,支持设置节点数据对象(object数据组或DataRow)、父节点ID、父节点、图像索引、选择状态、tag值等。
参考技术A 最近使用 Dev TreeList,在添加4W行记录时,居然花了10多秒,测试发现 使用AppendNode 和 Node.SetValue,会非常耗时!在添加或更新时,虽然已使用了BeginUnboundLoad 和 EndUnboundLoad. 最后换成使用DataSource,速度就非常快了.

 

创建对象时,对象中有一个Image属性,是从ImageList.Images中取图片,测试发现这个也非常耗时,换成自定义的Images集合快了很多。应该是

每次访问ImageList.Images[i] 会创建新的Image对象造成的。

 

通过Node.SetValue更新StateImage很慢,于是换成了自定义了一列,通过更新DataSource数据源后,再调用 TreeList.Refresh实现。

TreeList的DataSource我绑定的是BindingList<T> 集合,更新T对象的某个属性后(该属性为Image类型),测试发现只有调用TreeList.Refresh界面才能正常更新。调用其它方如 TreeList.Update ,TreeList.Invalidate等都不保证界面能得到正确的更新.
参考技术B treelist设置展开卡顿的原因是,是treelist的代码和系统代码产生冲突,需要修改代码才能解决。 参考技术C 1、OptionsSelection:
EnableAppearanceForcusedCell:选中的Cell的Appearance设置是否可⽤。默认为True;EnableAppearanceForcusedRow:选中的Node的Appearance设置是否可⽤。默认为True InvertSelection:设置选中风格是只应⽤于选中的Cell,还是应⽤于除选中的Cell之外的所有Cell。默认为False,即后者;
MultiSelect:是否可以选择多个Node。默认为False。
2、OptionsView:

DevExpress TreeList GridView 样式设置

 1、GridView 样式设置

 this.gridViewUser.PaintStyleName = "Flat";

 

2、TreeList 样式设置

this.treeListDep.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat;
this.treeListDep.LookAndFeel.UseDefaultLookAndFeel = false;

以上是关于treelist设置展开卡顿的主要内容,如果未能解决你的问题,请参考以下文章

kendo ui 查找treelist里的子控件并设置是否显示的方法

[DevExpress]treeList1背景色设置与自定义图标

DevExpress TreeList GridView 样式设置

DEV winform treelist设置背景图像

DevExpress XtraTreeList TreeList复选框选择

devexpress treelist 过滤