问题标签 [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 投票
3 回答
22962 浏览

c# - 在 WPF 中,您可以在没有代码的情况下过滤 CollectionViewSource 吗?

真的,主题说明了一切。

并不是说我不能有代码。它只是对我唠叨。

0 投票
6 回答
49473 浏览

wpf - 在 CollectionViewSource 上触发过滤器

我正在使用 MVVM 模式开发 WPF 桌面应用程序。

我正在尝试ListView根据在 a 中键入的文本从 a 中过滤出一些项目TextBox。我希望在ListView更改文本时过滤项目。

我想知道当过滤器文本改变时如何触发过滤器。

ListView绑定到 a CollectionViewSource,它绑定到我的ObservableCollectionViewModel 上的 。过滤器文本的TextBox绑定到 ViewModel 上的字符串UpdateSourceTrigger=PropertyChanged,它应该是。

Filter="CollectionViewSource_Filter"后面代码中指向事件处理程序的链接,它只是调用 ViewModel 上的过滤器方法。

当 FilterText 的值发生变化时,过滤就完成了——FilterText 属性的设置器调用了一个 FilterList 方法,该方法ObservableCollection在我的 ViewModel 中迭代并在每个项目 ViewModel 上设置一个booleanFilteredOut 属性。

我知道 FilteredOut 属性会在过滤器文本更改时更新,但列表不会刷新。CollectionViewSource只有当我重新加载 UserControl 时,过滤器事件才会被触发。

OnPropertyChanged("AllProjects")在更新过滤器信息后尝试调用,但它并没有解决我的问题。(“AllProjects”是绑定ObservableCollection到我的 ViewModel 上的属性CollectionViewSource。)

CollectionViewSource当 FilterText 的值发生变化时,如何让自己重新过滤TextBox

非常感谢

0 投票
1 回答
684 浏览

wpf - 带转换器的 SortDescription

我有 list<Person> Persons

人有 ID,类似于:12231d4sa32fd

我有一个将 ID 转换为状态的转换器:(Ready/Waiting/NotHere)。

我在 ListView 中显示列表。

问题:如何按人员的状态对 ListView 进行排序?

0 投票
1 回答
7285 浏览

wpf - 嵌套对象的绑定路径

我刚刚开始掌握数据绑定,我正在努力绑定到嵌套在对象下方的 ObservableCollection 中的属性,即在 ListView 的 DataTemplate 中,我试图绑定到下面的 Day.DayDate 属性。

它是一个日记应用程序,这是它的结构(经过编辑以保持简短):

我最初像这样填充 Months Days:

我希望我的主窗口有三个部分:

  1. Month ListView(显示所有天数)
  2. Day ListView(显示选定的 Days Gigs)
  3. 内容控制(显示选定的演出演出属性)

我坚持第 1 部分,我的 Xaml 看起来像这样:

在 TextBlock 中,绑定到 Months StartDate 工作正常,然后我想显示下面列出的所有 Months Day 对象 DayDate(最多 31,即 01 Sat 到 31 Mon)。

它没有显示 Day.DayDate!我如何绑定它?

你现在可以看到'Path=Day.DayDate',但我已经尝试了几乎所有可能让我相信我从错误的角度接近这个的可能性。

非常感谢任何帮助

0 投票
3 回答
1576 浏览

c# - 检查 CollectionViewSource 中的行是否是新行

我有一个 CollectionViewSource (cvs),它具有强类型 DataTable 作为它的源。Cvs.View 设置为 DataGrid 的 ItemsSource。我想根据 DataGrid 中的更改更新、插入和删除数据库中的数据。我已经成功完成更新,并且我有删除的想法,但是对于插入我有一些问题。我试图通过处理 cvs.View 的 CurrentChanging 事件来做到这一点,但行状态始终是分离的,应该添加它。这是我的代码:

这是正确的方法吗?我错过了什么吗?提前致谢。

编辑:DataGrid 绑定:

0 投票
2 回答
735 浏览

wpf - WPF-ObservableCollection 上的多个视图

我有一个包含定义的两个 CollectionViews 的视图模型。

我用于导航和数据输入/编辑的一个。另一个我想用于过滤目的并在表单上的某些 Listview 中显示过滤。

当我对 observablecollection 应用过滤时,我不希望主视图(用于 DataEntry 目的)受到影响。

提前致谢!

0 投票
1 回答
1405 浏览

wpf - 绑定到 CollectionViewSource 问题

我的问题是这样的:

我有 2 个列表框:

一个绑定到一个名为 Photos 类型的照片的集合,另一个绑定到一个 CollectionViewSource,该集合绑定到同一个照片集合。

listBox1 -> photos(这里 listBox1 绑定到照片的默认 CollectionView,当然不是直接绑定到照片。)

ListBox2 -> cvs -> 照片

两个集合(默认集合和我的 CVS)都有一个过滤器,可以将它们显示的项目从 8 个项目减少到 5 个项目。

现在我有 2 个标签。一个绑定到照片对象的 Count 属性,另一个绑定到 Count 属性,其中源是 cvs(我的 CollectionViewSource)对象。

第一个标签显示数字 8,正如我所见,这是因为即使我正在过滤它的默认 CollectionViewSource,照片的数量仍为 8。

第二个标签显示数字 5。

我了解到绑定到 cvs 是 WPF 从 cvs 解包源对象,并且 Path=Count 与底层对象相关,即照片,这里的数字也应该是 8。

有人能解释一下我在哪里穿吗?

谢谢!

0 投票
1 回答
692 浏览

wpf - WPF - 即使在过滤之后,收集计数也保持不变

我有一个列表框,它绑定到称为照片的照片类型集合。

我有一个绑定到照片的计数属性的标签。

在初始状态,照片包含 8 个项目,标签显示了这一点。即使在使 ListBox 中显示的项目为 5 的过滤后,绑定到 photos.Count 属性的标签仍然显示 8 个项目(当然因为照片集合没有改变,只有默认的 CollectionView 被改变了。

如何使我的标签绑定到照片默认 CollectionView 的 Count 属性?

我知道如何使用我创建的 CollectionViewSource(例如作为资源)来实现这一点,但我想知道如何绑定到默认集合视图的计数。

谢谢

0 投票
1 回答
4644 浏览

windows-phone-7 - SelectedItem 使用 CollectionViewSource 设置为第一个项目

我有一个视图数据通过 mvvm light 绑定到我的 WP7 项目中的视图模型。该视图包含一个具有以下设置的列表框:

StationList 是一个 ObservableCollection。

现在,当视图被加载时,一切看起来都很棒!显示列表,未选择任何项目!

但是当我将 XAML 更改为:

StationListSorted 是 StationList 上的一个简单属性排序,作为 CollectionViewSource。现在事情变得丑陋了!!相同的视图在列表框中加载了相同的项目,但现在正确排序,但是第一个项目被选中并设置了 selectedItem 属性!

如何在没有自动选择我的第一个项目的情况下使用 CollectionViewSource 对 ListBox 进行排序?

0 投票
1 回答
2105 浏览

wpf - 在 UserControl 中使用 CollectionViewSource 进行嵌套过滤

我有一个 UserControl 显示一些应该被过滤的集合,但传递给控件的集合可能会在主窗口中被过滤。它看起来像这样:

Window1.xaml

UserControl1.xaml

这不起作用,因为 CollectionViewSource.Source 不接受 ListCollectionView,它会引发异常“'System.Windows.Data.ListCollectionView' 不是属性 'Source' 的有效值。”。

我想我可以在 UserControl 中使用 DataContextChanged 事件来手动向 ListCollectionView 添加过滤,但这不会是嵌套的,我还需要手动设置 ListBox.ItemsSource 属性。我将使用现有视图并更改 Filter 属性。我想做的是使用 CollectionViewSource 创建另一个视图,以便我可以放入 xaml。那可能吗?

我希望我的 UserControl 能够处理普通集合以及 CollectionViews。