我有显示我的业务对象层次结构的 TreeList,它的所有部分都实现了 IVirtualTreeListData。但是,在某些时候我想进行更改:删除一些数据,可能添加一些数据或将叶子移动到另一个包含节点。我可以对底层业务对象进行更改,但显示的树不受影响。
我认为原因在于 TreeList 遍历 IVirtualTreeListData 的层次结构一次(它对应于节点的第一次扩展),然后只使用存储在途中检索到的节点中的数据。那么,如何将数据源的变化传播到视图中呢?
我有显示我的业务对象层次结构的 TreeList,它的所有部分都实现了 IVirtualTreeListData。但是,在某些时候我想进行更改:删除一些数据,可能添加一些数据或将叶子移动到另一个包含节点。我可以对底层业务对象进行更改,但显示的树不受影响。
我认为原因在于 TreeList 遍历 IVirtualTreeListData 的层次结构一次(它对应于节点的第一次扩展),然后只使用存储在途中检索到的节点中的数据。那么,如何将数据源的变化传播到视图中呢?
要启用 XtraTreeList 节点层次结构与底层业务对象的自动同步,请为您作为VirtualTreeGetChildNodesInfo.Children属性提供的子对象集合实现IBindingList接口。
完成此任务的最简单方法是在 BusinessObject 中创建一个实例来存储所有子对象并将其分配给方法实现中的属性。在这种情况下,当您的对象被更改或删除时,TreeList 将自动刷新相应的节点。BindingList<YourBusinessObject>()
info.Children
IVirtualTreeListData.VirtualTreeGetChildNodes()