Как я могу отфильтровать текущий список элементов списка? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть список, который заполнен списком элементов списка. Коллекция полностью нефильтрована. То, что я пытаюсь сделать, это создать возможность фильтровать список и изменить порядок списка на основе двух разных критериев. Первый - фильтр по статусу. У меня есть выпадающий список, который содержит все различные статусы. Я сделал это так:

public void ConstrainList()
        {
            if (((Lut_status)cboStatus.SelectedItem).ID != 8)
            {
                lbxHoldList.ItemsSource = allHolds.Where(a => a.FullHoldRecord.HoldStatus == ((Lut_status)cboStatus.SelectedItem).ID);
            }
            else
            {
                lbxHoldList.ItemsSource = allHolds.Where(a => a.FullHoldRecord.HoldStatus != 7);
            }
        }

Это метод, который запускается при срабатывании события выделенного списка. Это отлично работает. Я запутался в ограниченном списке, основанном на одном из 3 критериев, с помощью переключателей. Поэтому я подумал, что могу просто взять объект ItemsSource, отсортировать его с помощью linq, а затем переназначить его, выполнив что-то вроде:

lbxHoldList.ItemsSource = ((List<HoldDetails>)lbxHoldList.ItemsSource).OrderBy(a => a.FullHoldRecord.DateOpened);

Это работает первый тайм, но начинает падать с каждым последующим вызовом. Я не чувствую, что это лучший способ сделать это. Может ли кто-нибудь помочь мне исправить этот подход или показать лучший способ сделать это? Спасибо

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

Вам нужен CollectionViewSource. См. Эту статью для получения дополнительной информации, он довольно прост в использовании.

0 голосов
/ 23 декабря 2011

В чем ошибка? Это может быть сбой при приведении к List<HoldDetails>. Попробуйте привести к чему-то более общему (если вам вообще нужно разыграть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...