C# 更改DevExpress树列表的基础IVirtualTreeList数据源的结构

C# 更改DevExpress树列表的基础IVirtualTreeList数据源的结构,c#,devexpress,xtratreelist,C#,Devexpress,Xtratreelist,我有一个树列表,它显示了我的业务对象层次结构,它的所有部分都实现了IVirtualTreestData。但是,在某个时刻,我想做一些更改:删除一些数据,可能添加一些数据,或者将叶移动到另一个包含节点。我可以对底层业务对象进行更改,但显示的树不受影响 我认为原因在于树状图学家沿着IVirtualTreeListData的层次结构走了一次,(它对应于节点的第一次扩展),然后只使用存储在途中检索的节点中的数据。那么,如何将数据源中的更改传播到视图中?要使XtratreList节点层次结构与底层业务对象

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


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

要使XtratreList节点层次结构与底层业务对象自动同步,请实现您作为属性提供的子对象集合接口。
完成此任务的最简单方法是在BusinessObject中创建一个
BindingList()
实例来存储所有子对象,并将其分配给
IVirtualTreeGetChildNodes()方法实现中的
info.Children
属性。
在这种情况下,当您的对象被更改或删除时,树列表将自动刷新相应的节点。

要使XtratreList节点层次结构与底层业务对象自动同步,请实现您作为属性提供的子对象集合接口。
完成此任务的最简单方法是在BusinessObject中创建一个
BindingList()
实例来存储所有子对象,并将其分配给
IVirtualTreeGetChildNodes()方法实现中的
info.Children
属性。
在这种情况下,当您的对象被更改或删除时,树列表将自动刷新相应的节点。

重申:BindingList是否自动检测其包含成员的属性更改?@Srv19:Yes,但您必须在业务对象上实现INotifyPropertyChanged才能使其工作。重申:BindingList是否自动检测其包含成员的属性更改?@Srv19:是,但您必须在业务对象上实现INotifyPropertyChanged才能使其工作。