在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;
}