问题标签 [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 回答
6019 浏览

wpf - WPF 数据绑定:CollectionViewSource 和 ObjectDataProvider 问题

我有一个 MainWindow.xaml 文件:

及其代码隐藏类,我在其中定义了详细范围的过滤器:

接下来是AccountDetail类:

最后,一个枚举:

当我运行我的代码时,我得到一个列表框,其中填充了一堆帐户详细信息,每个都有自己的组合框,其中包含选定的范围和一个具有适当值的文本框。问题是组合框中的所有选定值都与为最后输入的详细信息设置的范围相匹配,并且更改任何组合框值都会更新所有这些值,就好像它们都绑定到相同的帐户详细信息一样。

当我ObjectDataProviderCollectionViewSourceDetailScopes 中取出并将其直接绑定到 AccountDetail 中的组合框ItemsSourceDataTemplate,问题就消失了。但是,我确实需要它,CollectionViewSource因为我正在对其应用一些过滤,而我无法将过滤应用于ObjectDataProvider.

有人可以解释为什么会发生这种情况以及我实际上应该如何连接CollectionViewSourceObjectDataProvider?谢谢你。

0 投票
1 回答
911 浏览

c# - 如何在排序的 silverlight 树视图中维护当前选择?

我有一个TreeView带有数据层次结构的 silverlight 4 控件。我希望每个级别中的项目按字母顺序排序,所以我使用 a CollectionViewSource,但实际上并不关心排序是如何完成的。

CollectionViewSource似乎观察事件,因此CollectionChanged在添加和删除项目时排序工作正常。

CollectionViewSource不会观察到被排序的属性的变化,因此当项目的文本发生变化时,不会保持排序。调用CollectionViewSource.View.Refresh()会重新排序列表,但会丢弃选择。如何在不丢失和重新设置TreeView选择的情况下保留选择?

示例项目:

描述:

这个项目创建了一个单层的项目树。每个项目都有一个项目编号和一个数字前缀,以使排序实际上做一些有趣的事情。这些按钮将添加一个项目、删除最旧的项目并重命名最旧的项目。

构建样本:

  • 创建一个名为“SortTest”的新 Silverlight 应用程序
  • 添加对 System.Windows.Controls 的引用(用于树视图)
  • 更新以下文件:

要注意的行为:

  • 在添加和删除项目时会保留当前选择。
  • Refresh()重命名项目时(从内部调用时) ,当前选择会丢失OnRenameButtonClick()
  • 如果删除调用,Refresh()则在重命名项目时会保留选择,但不会重新排序列表以考虑名称更改。

主页.xaml

MainPage.xaml.cs

谢谢!

0 投票
1 回答
695 浏览

silverlight - CollectionViewSource.Source = DomainDataSource 错误

我正在尝试将 CollectionViewSource 的源设置为 DomainDataSource:

页面加载时我收到此错误消息:

“集合视图的源类型不受支持。”

有任何想法吗?

0 投票
1 回答
3914 浏览

wpf - 应用 CollectionView 过滤器后如何绑定 DataGrid 行数?

之前在 CollectionView 上实现过滤,我用它来显示数据网格中的行数;

从那以后,我已经实现了一个过滤器;

当过滤器从视图中删除项目时,上面的 TextBlock 仍然显示未过滤的计数。我怎样才能让上面的 TextBlock 显示过滤器的行数?

0 投票
2 回答
2301 浏览

wpf - WPF TreeView 动态分组

我试图在 WPF 中创建一个绑定到 CollectionViewSource 的 TreeView。我在 CollectionViewSource 中创建组并在 XAML 中设置 HierarchicalDataTemplate 以正确显示 TreeView。

在我的 ViewModel 中,我有一种方法可以更改 CollectionViewSource 的分组,并且一切似乎都运行良好。我唯一的问题是在没有任何分组的情况下显示 CollectionViewSource。

有谁知道如何设计模板以适应 CollectionViewSource 没有分组但也可以容纳具有分组的 CollectionViewSource 的场景?

更新 我创建了一些示例代码来更好地描述我在做什么。DataTemplateSelector 在应用程序启动时工作,但是当用户从组合框中选择不同的分组选项时,我无法弄清楚如何重新触发 DataTemplate Selector。下面是我的示例代码

和背后的代码

0 投票
1 回答
414 浏览

wpf - 来自 WPF CollectionViewSource 的过滤器集

过滤后如何从 CollectionViewSource 获取结果集?实际上,我需要的只是计数,但我认为答案肯定是一致的。谢谢!

0 投票
1 回答
2851 浏览

wpf - WpfDatagrid Collectionviewsource 清除

我正在使用 wpftoolkit 数据网格控件,该控件使用 collectionviewsource 进行绑定以进行记录分组。每当用户试图清除表单时,我也需要清除数据网格。我尝试将 datagrid itemsource 设置为 null,但它适用于明确的功能。如果用户尝试将任何记录添加到 datagrid 它不会加载。

那么任何人都可以为我提供一个清除数据网格的解决方案。

提前致谢。

0 投票
1 回答
531 浏览

wpf - 带有 ExpressionDark 主题的 WPF ListBox 分组

我发现了这个关于对列表框进行分组的简单教程:

http://joyfulwpf.blogspot.com/2007/06/simple-grouping-in-listbox.html

它工作得很好,但我想在其中使用它的应用程序使用的是 ExpressionDark 主题。启用此主题后,我只能看到组标题而不是项目。

我无法找出主题中导致这种行为的原因。

有人可以帮我吗?

谢谢!

编辑:通过使用 TreeView 来“解决”它。

0 投票
4 回答
7479 浏览

c# - 与 CollectionViewSource 绑定

我正在尝试使用 CollectionViewSource 实现一些组合框排序。此组合框实际上是数据模板的一部分,并在列表视图中重复出现。我的第一种方法似乎有效(使用 CollectionViewSource),但我所有的组合框都共享相同的数据上下文。这使得每当更改其他框之一时,所有其他框都更改以反映 - 这不是所需的副作用。

我决定退后一步,尝试使用内联 xaml 来实现一个基本的组合框(不在数据模板内),以指定 CollectionViewSource(而不是将 cvs 创建为静态资源)。我无法成功显示我的数据。我可能完全错了,因为我还是 WPF 的新手。

这是我的组合框的 xaml:

此组合框所在的用户控件的 DataContext 绑定到一个对象,该对象具有一个名为 Configurations 的 ObservableCollection,并且每个配置都有一个名为 AgencyName 的属性。我已经验证了使用没有 cvs 的标准绑定可以正常工作,所以我知道在这种情况下一切都很好。

任何帮助将不胜感激,因为我已经没有借口给我的老板了:)。我也不想陷入代码并在后面的代码中进行排序(当我构建 ObservableCollection 时我可以这样做,但恕我直言,这违反了 DRY 原则)。

0 投票
2 回答
814 浏览

visual-studio-2010 - CollectionViewSource 类是否包含 INotifyPropertyChanged 接口的功能?

我已经编写了 1 个 WPF 应用程序。一个非常简单的应用程序。它工作得很好,今天被大量用作 LOB 应用程序。现在,我将开始对旧的 VB6 应用程序进行重大重写,并将其变成 WPF 应用程序。在开发第一个应用程序时,我了解了 INotifyPropertyChanged 接口,以及它对 WPF/Silverlight 数据绑定的重要性。现在,我担心的是,很久以前我为旧的 VB6 应用程序编写了一个 WCF 服务,该服务旨在替换我多年前在 VB6 中编写的旧中间层组件。我编写的 WCF 服务返回 ADO.NET 数据集,因为老实说,我多年来一直在使用这些数据集并且对它们感到满意。但是,现在我开始开发这个新应用程序,我非常关心我的 WCF 服务,因为 ADO.NET 数据集没有

所以我开始看其他的东西。现在我在看实体框架。我正在使用 Julia Lerman 的书《编程实体框架:第二版》,它看起来很有前途。我已经完成了她的 WPF 应用程序示例,该应用程序使用了她在前一章中编写的 EDM 程序集。包括对程序集的引用给了我 CollectionViewSource,至少在我看来,它们的行为方式与 INotifyPropertyChanged 接口的行为方式大致相同。

所以我的问题是:CollectionViewSource 类是否实现了 INotifyPropertyChanged 接口?我试过查看 MSDN 文档,但它并没有直接这么说,但我想知道 DependencyObject 类 CollectionViewSource 是否继承自与 INotifyPropertyChanged 接口相同的功能,还是 CollectionViewSource 实现了它?