【问题标题】:CollectionView without a dispatcher没有调度程序的 CollectionView
【发布时间】:2017-04-11 08:46:25
【问题描述】:

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

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

【问题讨论】:

  • 调度员有什么问题?你想完成什么?
  • 我需要一些甚至可以在控制台应用程序中使用的轻量级对象。据我所知,如果没有 System.Windows.Application 启动,则没有可用的 Dispatcher。
  • 在控制台应用程序中使用任何 ICollectionView 的内置实现都是没有意义的。我怀疑使用 ICollectionView 是否有意义。再说一遍:你想完成什么?
  • 我正在尝试获取 CollectionView 的分组、过滤和排序功能。
  • 为什么要在控制台应用程序中使用集合视图?您不妨直接对源集合进行分组、过滤和排序。

标签: c# wpf icollectionview


【解决方案1】:

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

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

因此,您将不得不提供自己的实现或以不同的方式解决您的问题。

【讨论】:

    【解决方案2】:

    来自 MSDN:

    备注:

    接口由 CollectionView 类实现,即 BindingListCollectionView、ListCollectionView 和 项目集合。

    CollectionView 派生自System.Windows.Threading.DispatcherObject,因此该类和所有派生的将始终具有Dispatcher 属性,因为Dispatcher 属性不是virtualabstractoverride,其他方式你可以将它标记为sealed 并使用没有Dispatcher 属性的派生类。

    CollectionView 的其他说明:

    备注:

    您不应在代码中创建此类的对象。为一个集合创建一个集合视图 实现 IEnumerable,创建一个 CollectionViewSource 对象,添加你的 集合到 Source 属性,并从中获取集合视图 View 属性。

    这不是解决你的问题,而是回答你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多