private static void TestMinimapItem(object item, DataGridContext gridContext, List <DiffMinimapItemInfo> itemInfoList, ref DiffMinimapItemInfo itemInfo) { var rowState = GetDiffState(item); if (rowState != itemInfo.DiffState || itemInfo.GridContext != gridContext) { if (itemInfo.Count != 0) { itemInfoList.Add(itemInfo); itemInfo = new DiffMinimapItemInfo(); } } itemInfo.GridContext = gridContext; itemInfo.DiffState = rowState; itemInfo.Count++; }
public static DiffMinimapItemInfo[] CollectMinimapItems(DataGridContext gridContext) { var itemInfoList = new List <DiffMinimapItemInfo>(); var itemInfo = new DiffMinimapItemInfo(); var items = DiffItemInfo.GetVisibleItems(gridContext); foreach (var item in items) { TestMinimapItem(item.Item, item.GridContext, itemInfoList, ref itemInfo); } if (itemInfo.Count != 0) { itemInfoList.Add(itemInfo); } return(itemInfoList.ToArray()); }