CSLA .NET 中的父子关系与数据绑定详解
一、父子关系处理
1.1 子对象标记
在使用数据门户加载对象时,如果该对象是子对象,必须手动调用 MarkAsChild() 方法来明确标记。这是因为数据门户默认将对象视为根对象加载,无法自动识别并标记子对象。通过这种方式,可以实现子对象的按需创建或检索,采用懒加载机制。
1.2 可编辑集合作为父对象
可编辑集合通过继承 BusinessListBase 来创建。从定义上看,集合包含其中的项,所以它属于父对象。在很大程度上,之前讨论的父子对象交互规则同样适用于集合作为父对象的情况。例如, BusinessListBase 类实现了 IParent 接口,并且在添加子对象或反序列化集合时会调用 SetParent() 方法。不过,可编辑集合也有一些独特的行为,主要体现在子项删除和子事件级联处理上。
1.3 父子交互特性
1.3.1 状态属性
集合本身没有内在状态,其 IsValid 和 IsDirty 属性直接反映子对象的状态。只有当集合中的所有子对象都有效时,集合才被认为是有效的。
1.3.2 事件处理差异
- 可编辑对象 :处理子对象的
PropertyChanged或ListChanged
超级会员免费看
订阅专栏 解锁全文
29

被折叠的 条评论
为什么被折叠?



