using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FLY.OBJComponents.Common { public interface INotifyBufferChanged<T> { // // 摘要: // 当集合更改时发生。 event NotifyBufferChangedEventHandler<T> BufferChanged; } public delegate void NotifyBufferChangedEventHandler<T>(object sender, NotifyBufferChangedEventArgs<T> e); public class NotifyBufferChangedEventArgs<T> : EventArgs { /// <summary> /// 动作 /// </summary> public NotifyBufferChangedAction Action { get; set; } /// <summary> /// 被修改的数据,可能为空,需要再向Buffer 获取 /// </summary> public IEnumerable<T> Items { get; set; } /// <summary> /// 最后一条记录ID /// </summary> public int EndingID { get; set; } /// <summary> /// 当前修改数据量 /// </summary> public int Count { get; set; } /// <summary> /// 列表最后一条记录 /// </summary> public int BufferNewestID { get; set; } /// <summary> /// 列表总数据量 /// </summary> public int BufferCount { get; set; } } public enum NotifyBufferChangedAction { // // 摘要: // 向集合中添加了一个或多个项。 Add = 0, // // 摘要: // 从集合中移除了一个或多个项。 Remove = 1, // // 摘要: // 在集合中替换了一个或多个项。 Replace = 2, // // 摘要: // 集合的内容发生显著更改。 Reset = 4, /// <summary> /// 刚连接上 /// </summary> IsConnected=5 } }