创建基类为您的员工,例如,EntityBase和枚举描述其状态:
public enum EntityState
{
NotChanged,
Changed,
Added,
Deleted
}
public abstract class EntityBase : INotifyPropertyChanging, INotifyPropertyChanged
{
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
private EntityState state = EntityState.NotChanged;
public EntityState State
{
get { return state; }
set { state = value; }
}
public EntityBase()
{
state = EntityState.NotChanged;
}
protected virtual void SendPropertyChanging(string propertyName)
{
if ((this.PropertyChanging != null))
{
this.PropertyChanging(this, new PropertyChangingEventArgs(propertyName));
}
}
protected virtual void SendPropertyChanged(string propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
当收集您的聘用过的员工的一个变化 - 与EntityState.Changed纪念它,那么你只能申请从收集中更改实体并根据需要处理它们。
感谢您的帮助/答复。 你是说钩住了observableCollection的CollectionChanged事件,然后在那里标记你的物品脏了 是你的意思吗? – user9969 2010-07-12 15:52:27
地点是你自己设定这个属性。可能在setter中,可能会自定义PropertyChangedCallback的方法。这个想法是:当对象的某些属性发生变化时 - 将该对象标记为已更改。事情非常简单,例如,您不需要将所有集合发布到数据库中,以便更新它时,只有1%的实体发生更改。 – 2010-07-12 15:59:07
这正是我想要达到的目标。让我走了,回到你身边。 – user9969 2010-07-12 16:00:56