29、CSLA .NET 中的父子关系与数据绑定详解

CSLA .NET 中的父子关系与数据绑定详解

一、父子关系处理

1.1 子对象标记

在使用数据门户加载对象时,如果该对象是子对象,必须手动调用 MarkAsChild() 方法来明确标记。这是因为数据门户默认将对象视为根对象加载,无法自动识别并标记子对象。通过这种方式,可以实现子对象的按需创建或检索,采用懒加载机制。

1.2 可编辑集合作为父对象

可编辑集合通过继承 BusinessListBase 来创建。从定义上看,集合包含其中的项,所以它属于父对象。在很大程度上,之前讨论的父子对象交互规则同样适用于集合作为父对象的情况。例如, BusinessListBase 类实现了 IParent 接口,并且在添加子对象或反序列化集合时会调用 SetParent() 方法。不过,可编辑集合也有一些独特的行为,主要体现在子项删除和子事件级联处理上。

1.3 父子交互特性

1.3.1 状态属性

集合本身没有内在状态,其 IsValid IsDirty 属性直接反映子对象的状态。只有当集合中的所有子对象都有效时,集合才被认为是有效的。

1.3.2 事件处理差异
  • 可编辑对象 :处理子对象的 PropertyChanged ListChanged
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值