问题标签 [collectionviewsource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1236 浏览

wpf - WPF 应用程序框架 (WAF) 中的 MVVM 集合视图

简而言之,我的问题是:您更喜欢如何将过滤/排序/分组的 ObservableCollections 公开给 WAF 中的视图?

我对我的第一次尝试感到相当满意,其中涉及在 VM 上进行过滤并公开模型对象的 ICollectionView 以便视图绑定到:

但是,直接公开 Model 对象是不够的,因为现在每个项目都需要自己的 ViewModel。

因此,CollectionViewSource.Source 现在附加到视图集合。主要问题是在应用过滤器时:

这对我来说感觉不对。有更好的方法吗?

更新

所以我恢复到模型对象的 CollectionViewSource.Source 并维护一个单独的视图绑定的子视图对象集合。

那么问题当然是我为什么要在 ViewModel 中使用 CollectionViewSource 呢?

我认为以下原则适用:如果过滤/排序功能只是视图的属性(即替代视图可能合法地不提供此类功能),则应在视图中使用 CollectionViews(必要时使用代码隐藏)。如果过滤/排序功能是 Model 的一个维度,那么这可以通过其他方式在 ViewModel 或 Model 中处理。

一旦您意识到 MVVM 视图中的代码隐藏是完全可以接受的,这就是有道理的。

任何意见?

0 投票
3 回答
5737 浏览

wpf - 如何处理具有 CollectionView 功能的 CompositeCollection?

当 CompositeCollection 的当前位置发生变化时,有没有办法得到通知?

我需要由 CollectionView 监控 CompositeCollection,欢迎提出任何想法。

0 投票
2 回答
5115 浏览

wpf - 将 Wpf HierarchicalDataTemplate ItemsSource 绑定到字典中的 CollectionViewSource?

我正在尝试显示一个 Wpf Treeview,其中包含按 CollectionViewSource 排序的项目。

目前,除了在我的资源字典中使用此代码进行排序外,一切正常:

将 HierarchicalDataTemplate 更改为绑定到 CollectionViewSource 的语法是什么,而 CollectionViewSource 又从 Items 属性中提取?

我尝试了 Bea Stollnitz 博客上发布的代码的变体,但没有成功。我不知道如何设置 CollectionViewSource 的来源。

0 投票
1 回答
8475 浏览

c# - CollectionViewSource Use Question

I am trying to do a basic use of CollectionViewSource and I must be missing something because it is just not working. Here is my XAML:


This compiles fine, but when I run the app I get this error:

This is the collection I am attaching to:

I just want to do simple grouping on object Project SourceProject. I would rather not have to break out a tree view for this.

0 投票
2 回答
1886 浏览

wpf - 关于如何对 CompositeCollection 进行排序的任何想法?

我有一个 CompositeCollection,它由两种类型的 ObservableCollections 组成:公司和联系人。Contact 有一个属性 FullName,而 Company 有一个属性 Name。

我想应用排序,以便集合按类型混合但按名称排序,例如:

Itzhak Perlman
John Doe
Microsoft
Sarah Moore
StackOverflow
Walter Richardson

请注意,我将 ItemsControl 绑定到 CollectionViewSource,它的 Source 设置为 CompositeCollection,它的视图变成了 CompositeCollectionView,它是一个内部类型,如果我将它的类型显式设置为 ListCollectionView,它只包含 CollectionContainers 作为它的项目。

所需的解决方案是在 CompositeCollection 上启用排序、过滤和分组的解决方法,我不想覆盖和创建自己的 CompositeCollection,我只是不知道如何覆盖它并在 xaml 中启用它的功能。

0 投票
2 回答
12443 浏览

wpf - WPF CollectionViewSource 多个视图?

我编写了一个带有搜索扩展名的自定义 WPF 控件,我们将其命名为MyControl. Control 是一个ItemsControl 类的后代。

所以我像这样将数据源提供给它:

控件本身使用

过滤源集合的视图(从而将其显示在内部列表框中)。

现在假设我们在 XAML 中定义了 10 个具有相同 DynamicSource 的 MyControl。问题是,如果其中一个对源集合应用过滤器,它也会影响所有其他实例。

您将如何更改控件以避免这种行为?

0 投票
1 回答
266 浏览

wpf - 查找所有附加到集合的 ICollectionView

我们有多个基于同一个集合的过滤器。即我们以多种方式展示同一个集合。我想做的是在属性更改时要求所有 CollectionViews 刷新(因为只有在从集合中添加/删除项目时,集合视图才会重新过滤)。有没有办法找到与给定集合关联的所有集合视图。集合视图和集合之间是否存在双向链接,或者确定此链接的方法。

PS我不认为答案是

因为这将为我提供集合的默认视图,而不是与集合关联的所有 ICollectionView。

0 投票
1 回答
941 浏览

wpf - 你能在 WPF 的 CollectionViewSource 中关闭选择同步吗?

我有几个 CollectionViewSource 实例都在同一个 ObservableCollection 上使用。我还有几个控件需要显示集合的过滤版本(因此是 CollectionViewSources)。我遇到的问题是 CollectionViewSource 强制他们都选择了相同的项目。有什么办法可以关闭它吗?

谢谢,杰森刘易斯

0 投票
1 回答
2723 浏览

c# - ICollectionView.SortDescriptions 不适用于布尔值

myListBox.Items.SortDescriptions.Add(new SortDescription("BoolProperty", ListSortDirection.Descending));

此排序仅适用于基础项目的字符串属性。不带布尔值?这有什么原因吗?

谢谢 !

更新:

是的,您的示例确实有效。但是我的例子有什么问题?

0 投票
1 回答
1916 浏览

wpf - CollectionViewSource 和 Linq

在 CollectionViewSource 中查找项目的最简单方法是什么?我似乎找不到对 linq 友好的属性。我想做类似 MyCollectionViewSource.View.Where(x=>x...)

干杯,
贝里尔