我有一个列表框,其中填充了List项列表。该系列完全未经过滤。我想要完成的是创建过滤列表框的能力,并根据两个不同的标准重新排序列表框。第一个按状态过滤。我有一个包含所有不同状态的组合框。我已经完成了这样的事情:
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);
这适用于第一个timem,但随着每个后续调用开始崩溃。我觉得这不是最好的方法。有人可以帮我修复这种方法或者告诉我更好的方法吗?感谢
答案 0 :(得分:1)
您需要一个CollectionViewSource。 See this article了解更多信息,它非常易于使用。
答案 1 :(得分:0)
错误是什么?它可能会在演员身上崩溃到List<HoldDetails>
。尝试投射到更通用的东西(如果你甚至需要施放)。