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