UWP ограничить количество элементов в AdvancedCollectionView - PullRequest
0 голосов
/ 31 марта 2019

У меня есть 2 расширенных представления коллекции из инструментария сообщества Windows, и оба они связаны с одной и той же ObservableCollection с различными фильтрами и сортировкой, в основном в одном из них мне нужно показать только последнее и ограниченное количество элементов, так как я могу достичь что?

PeoplePrivate = new ObservableCollection<Person>();

        var People = new AdvancedCollectionView(PeoplePrivate, true) { Filter = x => true };
        People.SortDescriptions.Add(new SortDescription(nameof(Person.Name), SortDirection.Ascending));

        var RecentPeople = new AdvancedCollectionView(PeoplePrivate, true) { Filter = x => true };
        RecentPeople.SortDescriptions.Add(new SortDescription(nameof(Person.Modified), SortDirection.Descending));

так, как вы можете видеть в коде выше, RecentPeople должен показывать только последних 20 человек в соответствии с измененной датой. Кажется, что нет никакого свойства, чтобы установить максимальный размер в представлении advancedCollection или сделать что-то вроде «Take (20)». Я пытался вернуть новый параметр advancedCollection, сначала создав IEnumeralbe с Take (20), но это не выглядит правильный путь bcz Мне нужно, чтобы он был связан с той же коллекцией ObservableCollection.

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

просмотреть или сделать что-нибудь вроде «Take (20)» Я попытался вернуть новую расширенную коллекцию, сначала создав IEnumeralbe с Take (20)

В настоящее время AdvancedCollectionView не предоставляет этот метод для получения последних элементов номера. Но вы можете удалить все предметы, кроме 20 лучших.

public static class AdvancedCollectionViewEx
{
    public static void GetTopRang(this AdvancedCollectionView acv, int Range)
    {
        do
        {
            var LastIndex = acv.Source.Count - 1;
            acv.Source.RemoveAt(LastIndex);

        } while (acv.Source.Count > Range);
    }
}

Использование

RecentPeople.GetTopRang(20);
0 голосов
/ 25 апреля 2019

Мне нравится ответ WPF, предоставленный здесь , и использую Binding Converter, чтобы нарезать конечный результат представления коллекции, когда он привязан к ListView. Затем он должен обновляться при изменении коллекции и повторной фильтрации?

...