我在 winforms 表单上有一个带有 bindingsource 的绑定导航器。我的数据源来自实体框架列表。
我想使用从Pluralsight 的 Julie Lerman 课程中学到的技术来跟踪绑定源中每个实体的状态
添加和编辑很简单,我只是填写了添加和删除按钮事件
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
((IEntity)(this.personBindingSource.Current)).State = EntityState.Added;
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
((IEntity)(this.personBindingSource.Current)).State = EntityState.Deleted;
}
但是没有 EditItemClick 事件,我如何跟踪实体是否已被修改?
注意我绑定到域类 Person 的断开连接列表
List<Person> people = MyRepository.GetPeople();
this.personBindingSource.DataSource =people;
this.personBindingNavigator.BindingSource = this.personBindingSource;
我有一个接口 IENTity
public interface IEntity
{
EntityState State { get; set; }
}
public enum EntityState
{
Unchanged,
Added,
Modified,
Deleted
}
并且 Person 继承自该 [Update] 查看 bindingSource 事件属性,我看到 CurrentItemChanged 在属性被修改时引发。但是,当当前项目本身更改时也会引发它。
有没有办法弄清楚它被提出的原因是什么?