没有调度程序的 CollectionView

CollectionView without a dispatcher

我需要 CollectionView 的排序、分组和过滤行为也具有 LiveShaping 属性,但每个 .NET 实现都有一个与其连接的 Dispatcher。

是否有任何没有调度程序的 ICollectionView 实现?

来自 MSDN:

Remarks:

The interface is implemented by the CollectionView class, which is the base class for BindingListCollectionView, ListCollectionView, and ItemCollection.

CollectionView 派生自 System.Windows.Threading.DispatcherObject,因此此 class 和所有派生的 将始终具有 Dispatcher 属性,因为 Dispatcher 属性 不是 virtualabstractoverride,否则您可以将其标记为 sealed 并使用派生的 class没有 Dispatcher 属性.

CollectionView 的其他备注:

Remarks:

You should not create objects of this class in your code. To create a collection view for a collection that only implements IEnumerable, create a CollectionViewSource object, add your collection to the Source property, and get the collection view from the View property.

这不是您问题的解决方案,而是您问题的答案。

Is there any implementation of the ICollectionView without a dispatcher?

不,没有。在 .NET Framework 中实现此接口的唯一 class 是 CollectionView class,它是 DispatcherObject.

所以您必须提供自己的实现或以不同的方式解决您的问题。