带组合框的 ItemTemplate,ListCollectionView

ItemTemplate with Combobox, ListCollectionView

我的视图 (V) 绑定到 ViewModel (VM)。在 V 中,我有一个显示在 ListView 中的对象列表。在我使用 ItemTemplate 的 ListView 中,每个项目都显示为一个包含项目名称的标签和一个组合框,其中 SelectedItem 设置为项目的另一个 属性。 Combobox 绑定到一个列表,它也是主 V 的 VM 的一部分(我在绑定中使用 ElementName=ListBox.DataContext 绑定它...)
到目前为止一切都很好。问题是 Combobox 可以包含很多条目,我想使用分组或过滤。我知道如何使用 ListCollectionView 进行过滤和分组。但我不能简单地将我的列表更改为 ListCollectionView,因为它被多次使用(对于 ListView 中的每个项目)。一个ListCollectionView不能多次使用,但每次使用不同的SelectedItem。
现在我正在寻找一种在 ListView 的组合框中使用分组的简单方法。 有没有办法直接在 ItemTemplate(DataTemplate)中的 XAML 中定义 ListCollectionView?我还考虑过在 ItemsSource 绑定中使用(非共享)转换器,将我的对象列表转换为 ListCollectionView(如果我使用 OneTime 绑定,转换器只会被调用一次,对吗?)?我知道我也可以将 VM 列表中的每个对象放在它自己的 ViewModel 中,并且每个对象都为 Combobox 提供自己的 ListCollectionView,但这似乎是最复杂的解决方案(但也许是最干净的?)
还有其他建议或建议吗?

如果您想在多个组合框(或其他选择器)中使用相同的 ICollectionView 而不同步它们的所选项目,您需要在每个组合框上明确设置 IsSynchronizedWithCurrentItem="False"