У меня есть список, который заполнен списком элементов списка. Коллекция полностью нефильтрована. То, что я пытаюсь сделать, это создать возможность фильтровать список и изменить порядок списка на основе двух разных критериев. Первый - фильтр по статусу. У меня есть выпадающий список, который содержит все различные статусы. Я сделал это так:
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);
Это работает первый тайм, но начинает падать с каждым последующим вызовом. Я не чувствую, что это лучший способ сделать это. Может ли кто-нибудь помочь мне исправить этот подход или показать лучший способ сделать это? Спасибо