在Winform項目中使用EF,並實現雙向綁定時,發現一個有趣的現象:
項目中使用了Fody.PropertyChanged,理論上需要model類繼承INotifyPropertyChanged接口,才能實現雙向綁定。
當項目中未使用EF時,確實如此。
但是,當項目中引入EF後,實體類的屬性與控件綁定,實體類不需要實現INotifyPropertyChanged接口,也能雙向綁定。
難道EF框架使得實體類實現了INotifyPropertyChanged接口?
但是爲了安全起見,還是建議實體類實現INotifyPropertyChanged接口爲好。
由於實體類是自動生成的,所以我一般使用Partial類實現INotifyPropertyChanged接口:
//Person爲EF生成的實體類
//Person.PropertyChanged.cs
public partial class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
}