創建基類爲您的員工,例如,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