using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Core.Mes.Client.Comm.Tool { /// /// 数据源集合,用来判断数据是否发生修改。 /// /// public class DataSourceList : List { private Dictionary _queryDic = new Dictionary(); public Dictionary QueryDic { get { return _queryDic; } set { _queryDic = value; } } private bool _isChanged = false; public bool IsChanged { get { return _isChanged; } set { _isChanged = value; } } /// /// 提交更改 /// public void AcceptChanges() { _queryDic.Clear(); _isChanged = false; foreach(T obj in this) { T obj2 = EntityHelper.CopyEntity(obj); _queryDic.Add(obj, obj2); } } /// /// 数据发生更改时调用该方法。 /// /// public void Change(T obj) { if (_queryDic.ContainsKey(obj)) { _isChanged = !EntityHelper.Compare( obj, _queryDic[obj]); } else { _isChanged = true; } } } }