更改DevExpress TreeList的底层IVirtualTreeList数据源的结构

时间:2013-03-22 08:12:38

标签: c# devexpress xtratreelist

我有TreeList显示我的业务对象层次结构,它的所有部分都实现了IVirtualTreeListData。但是,在某些时候我想进行更改:删除一些数据,可能添加一些数据或将叶子移动到另一个包含节点。我可以对底层业务对象进行更改,但显示的树不受影响。

我认为原因在于TreeList沿着IVirtualTreeListData的层次结构向下走(它对应于第一次扩展节点),然后只使用存储在路上检索的节点中的数据。那么,如何将数据源中的更改传播到视图中?

1 个答案:

答案 0 :(得分:1)

要启用XtraTreeList节点层次结构与基础业务对象的自动同步,请为IBindingList属性提供的子对象集合实现VirtualTreeGetChildNodesInfo.Children接口。
完成此任务的最简单方法是在BusinessObject中创建BindingList<YourBusinessObject>()实例以存储所有子对象,并将其分配给info.Children方法实现中的IVirtualTreeListData.VirtualTreeGetChildNodes()属性。 在这种情况下,当您的对象被更改或删除时,TreeList将自动刷新相应的节点。