时间:2011-01-06 19:37:56

标签: wpf xaml

2 个答案:

答案 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中添加逻辑,以适当的方式将空值视为“全部”。有一个额外的课程,这有点烦人,但如果你在几个地方需要它,它会使代码更清洁。