答案 0 :(得分:4)
看看CompositeCollection。它允许您将多个集合连接到一个集合中 - 类似于LINQ Concat的XAML等价物。它实现了INotifyCollectionChanged,因此如果它的一些内部集合是ObservableCollections,它应该能够对更改作出反应。
CompositeCollection还允许您添加单个元素,因此您甚至不需要将“所有项目”包装在其自己的集合中。 (相反,您必须在CollectionContainer中包装集合。请参阅CompositeCollection文档页面上的示例。)
答案 1 :(得分:1)
我有类似的需求,最后使用了本文中讨论的解决方案:How To Select Null/None in a ComboBox/ListBox/ListView。
您可以使用“全部”或类似内容替换第98行上的“(无)”字符串。然后只需在ViewModel中添加逻辑,以适当的方式将空值视为“全部”。有一个额外的课程,这有点烦人,但如果你在几个地方需要它,它会使代码更清洁。