Пример #1
0
        public void Refresh(CriteriaType criteriaType, TCriteria criteria)
        {
            Busy = true;
            Guid refreshGuid = Guid.NewGuid();

            _refreshGuid = refreshGuid;
            PaginationService.GetItems(criteriaType, PageSize, criteria, items => {
                if (_refreshGuid != refreshGuid)
                {
                    return;
                }
                _dispatcher.Invoke(() => {
                    CriteriaType = criteriaType;
                    if (criteriaType == CriteriaType.DownFromInfinity && items.Any())
                    {
                        Criteria = _getCriteriaFunc(items.First());
                    }
                    else if (criteriaType == CriteriaType.UpFromInfinity && items.Any())
                    {
                        Criteria = _getCriteriaFunc(items.Last());
                    }
                    else
                    {
                        Criteria = criteria;
                    }
                    UpdateItems(items);
                    Busy = false;
                });
            });
        }