Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        /// <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;
            }
        }
Beispiel #3
0
 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;
 }