C#XtraTreeList的AppendNode方法花费了太多时间

时间:2013-10-15 09:31:30

标签: c# object devexpress nodes xtratreelist

我在向XtraTreeList添加节点时遇到了很多麻烦。

我使用的方法是TreeList.AppendNode(有关方法here的更多信息)。

实际结果:

如果我有一个名为MyClass的类,并且我想在我的XtraTreeList中向现有节点添加节点。

如果我这样做:

// tlTest is the XtraTreeList
tlTest.AppendNode(new MyClass(/* Some Arguments */), parentNode);

在屏幕上打印注释。

但是,如果我这样做:

// tlTest is the XtraTreeList
tlTest.AppendNode(new object[] (){/* Some Arguments without cast */}, parentNode);

这看起来效果非常好!

问题:

第二种做事方式的问题是,需要200个子节点才能添加太多时间/资源。而且我想知道它是否与动态铸造有关...

问题:

有更好的方法吗?保持代码不是一个好主意,因为添加200个子节点需要大约6/7秒(这对最终用户来说是一个真正的痛苦)。

1 个答案:

答案 0 :(得分:1)

在未绑定模式下添加多个节点时,必须使用TreeList.BeginUnboundLoadTreeList.EndUnboundLoad方法来防止不必要的更新。

来自help-article

  

应该使用BeginUnboundLoad和EndUnboundLoad方法   添加,删除和删除时,避免过多的内部数据更新   在未绑定模式下修改节点。在绑定模式下,使用   改为使用LockReloadNodes和UnlockReloadNodes方法。