/// <summary> /// 加载查询结果 /// </summary> /// <param name="result"></param> public void LoadTrainResult(IEnumerable <QueryResultItem> result, bool removeCurrentList = true) { if (!Visible || !AppContext.MainForm.IsWindowVisible) { #if DEBUG TOBA.Events.OnMessage(this, new EventInfoArgs("不可见查询:" + QueryParam.Name + ",已挂起刷新界面")); #endif _lastData = Tuple.Create(result, removeCurrentList); return; } _lastData = null; BeginUpdate(); if (removeCurrentList) { Clear(true); //fix memory leak Groups.ForEach(_ => _.Items.Clear()); } if (result != null) { var items = result.Select(s => { var item = new QueryResultListViewItem(s, _fonts, ShowStartAndEndStation); AssignItemGroup(item); return(item); }).ToArray(); Items.AddRange(items); } EndUpdate(); }
/// <summary> /// 刷新指定项的分组 /// </summary> /// <param name="item"></param> void AssignItemGroup(QueryResultListViewItem item) { var handler = RequireAssignItemGroup; if (handler != null) { handler(this, new AssignItemGroupEventArgs(item, item.ResultItem)); return; } var s = item.ResultItem; if (s.ControlFlag != 0) { item.Group = _underControl; } else if (s.NoTicketNeeded) { item.Group = _noneedticket; } else if (!s.IsAvailable) { if (s.BeginSellTime == null) { item.Group = _notiket; } else { var grouptext = s.SellTimeTip; item.Group = _hourSellListGroup.GetValue(grouptext, _ => { var g = new BetterListViewGroup(grouptext); Groups.Add(g); return(g); }); } } else { item.Group = _valid; } }
void RefreshItemIcon(QueryResultListViewItem item) { item.RefreshIcon(); }
/// <summary> /// 创建 <see cref="AssignItemGroupEventArgs" /> 的新实例(AssigenItemGroupEventArgs) /// </summary> /// <param name="item"></param> /// <param name="train"></param> public AssignItemGroupEventArgs(QueryResultListViewItem item, QueryResultItem train) { Item = item; Train = train; }