Beispiel #1
0
        public async Task SortAsync <T>(T[] ar, Func <T, T, int> comparer)
        {
            await Task.Run(() =>
            {
                Sort(ar, comparer);
            });

            SortComplete?.Invoke(this, new EventArgs());
        }
Beispiel #2
0
        public void SortList(BindingList <FilmViewModel> _films, int columnIndex)
        {
            new Task(() =>
            {
                switch ((FilmViewFields)columnIndex)
                {
                case FilmViewFields.Name:
                    if (_nameSort == SortType.Ascending)
                    {
                        BindingList = new BindingList <FilmViewModel>(_films.OrderByDescending(f => f.Name).ToList());
                        _nameSort   = SortType.Descending;
                    }
                    else
                    {
                        BindingList = new BindingList <FilmViewModel>(_films.OrderBy(f => f.Name).ToList());
                        _nameSort   = SortType.Ascending;
                    }
                    break;

                case FilmViewFields.Year:
                    if (_yearSort == SortType.Ascending)
                    {
                        BindingList = new BindingList <FilmViewModel>(_films.OrderByDescending(f => f.Year).ToList());
                        _yearSort   = SortType.Descending;
                    }
                    else
                    {
                        BindingList = new BindingList <FilmViewModel>(_films.OrderBy(f => f.Year).ToList());
                        _yearSort   = SortType.Ascending;
                    }
                    break;

                case FilmViewFields.Country:
                    if (_countrySort == SortType.Ascending)
                    {
                        BindingList  = new BindingList <FilmViewModel>(_films.OrderByDescending(f => f.Country).ToList());
                        _countrySort = SortType.Descending;
                    }
                    else
                    {
                        BindingList  = new BindingList <FilmViewModel>(_films.OrderBy(f => f.Country).ToList());
                        _countrySort = SortType.Ascending;
                    }
                    break;
                }

                SortComplete?.Invoke(this, EventArgs.Empty);
            }).Start();
        }