C# 实体框架-如何为任何属性引发OnChange?
在WPF/EF4.0/MVVM应用程序中,我有一个编辑客户实体的视图。在我的CustomerServiceWModel中设置属性“bool IsCustomerInEditMode”的最佳方法是什么,而不是对实体的每个单独属性执行onchange/OnChanged partial方法?据我所知,没有单一的改变方法 谢谢 编辑:回答:EntityState编辑: 在帖子中回答您的问题(设置bool IsCustomerInEditMode的最佳方式)- 订阅entity.PropertyChange事件,在该事件中设置IsCustomerInEditMode==true; 订阅entity.PropertyChanged事件,在其内部设置IsCustomerInEditMode==false 我认为InstanceOfYourCustomer.Property更改和InstanceOfYourCustomer.Property更改了您要查找的事件。对于实体上生成的每个属性,如果属性发生更改,则会触发事件(除非使用分部类向实体添加其他属性,在这种情况下,需要在这些属性的设置器中添加对ReportPropertyChanged和ReportPropertyChanged的调用)C# 实体框架-如何为任何属性引发OnChange?,c#,wpf,entity-framework,mvvm,entity-framework-4,C#,Wpf,Entity Framework,Mvvm,Entity Framework 4,在WPF/EF4.0/MVVM应用程序中,我有一个编辑客户实体的视图。在我的CustomerServiceWModel中设置属性“bool IsCustomerInEditMode”的最佳方法是什么,而不是对实体的每个单独属性执行onchange/OnChanged partial方法?据我所知,没有单一的改变方法 谢谢 编辑:回答:EntityState编辑: 在帖子中回答您的问题(设置bool IsCustomerInEditMode的最佳方式)- 订阅entity.PropertyChan
我正在使用EF4,正在查看Model.Designer.cs文件。。。我所有的实体“属性”设置器都调用ReportPropertyChanged和ReportPropertyChanged。。。这将在您的实体上触发PropertyChanged和PropertyChanged事件,参数甚至会告诉您引发更改事件的特定属性。Scott,谢谢您的回答。我可以看到customerInstance.PropertyChange事件。这可能是我想做的事情的关键。您看到的ReportPropertyChange调用用于单个属性,而不是整个实体。我还不确定,但我相信我要找的是EntityObject.EntityState,报告已修改,我可以将其分配给我的IsCustomerInEditMode属性。很高兴您能够解决此问题!我可能错了,但我认为ReportPropertyChange引发了实际实体的PropertyChangingEvent。我意识到这个调用的参数是正在更改的实体的特定属性的字符串值,但是我认为这就是PropertyChange事件的事件参数可以指定实体的哪个属性实际导致事件触发的原因(因为我们无法知道其他情况)。无论如何,听起来EntityState对您来说会更好,因为您似乎希望它在提交之前处于“编辑状态”。我将Scott的答案标记为正确,因为它回答了我的一个问题-如何获取在任何标量属性发生更改时报告更改的属性。但是,我的问题的答案是(问得很糟糕,我知道)是使用IsCustomerInEditMode=SelectedCustomer.EntityState==EntityState.Modified)| |(SelectedCustomer.EntityState==EntityState.Added)的可能重复项