我有一个复杂数据类型的RIA silverlight 4应用程序作为模型。作为一个熟悉的例子,我们称之为aspnet_User,它有一个名为aspnet_Membership的成员对象; aspnet_User有一个名为“UserName”的成员,而aspnet_Membership有一个名为“Email”的成员。现在使用aspnet_User作为数据上下文,我想绑定到aspnet_User或附加的aspnet_Membership中的任何更改 - 即我想要显示aspnet_User是否“脏”。脏标志应显示是否更改aspnet_User.UserName或aspnet_Membership.Email。现在我已经实现了一个Converter,并绑定到一个对象上的EntityState,这对于显示简单属性是否脏,但是在编辑aspnet_Membership成员的方面时不会改变EntityState来说是很好的。RIA,Silverlight 4,EntityStates和复杂类型
我试图实现一个名为BubbledEntityState的属性,它反映了修改后的aspnet_User或aspnet_membership上的EntityState。它是在Silverlight项目的一个部分类中定义的。这需要对aspnet_User或其成员aspnet_Membership上的EntityState PropertyChanged事件作出反应。所以我试图在部分OnCreated方法中处理这些事件。然而奇怪的是,这根本没有被调用。下面是方法: 公共部分类aspnet_User {
partial void OnCreated()
{
this.aspnet_Membership.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(aspnet_Membership_PropertyChanged);
this.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(aspnet_User_PropertyChanged);
}
... }
我假定aspnet_User对象构造在服务器上,而不是“重建”当他们重新组建了RIA完成WCF调用后的客户端。这让我感到奇怪。我在做一些胡思乱想的事情吗?任何人都有更好的方式来处理这个问题?