问题标签 [icollectionview]
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.
wpf - 为什么使用 CollectionViewSource.SortDescriptions 排序很慢?
这是您单击 中的列标题时的默认排序方法DataGrid
。当底层列表包含 100,000 个项目时,刷新视图大约需要 20 秒。SortDescription
在 a 上设置 s时可以观察到相同的延迟CollectionView
。
通过使用ListCollectionView.CustomSort
或通过排序和重新分配列表进行排序几乎可以立即进行。
为什么会出现这种延迟?这只是对绑定属性的“反射税”吗?
wpf - WPF ICollectionView 过滤
我编写了用于在 ComboBox中过滤项目的代码:
我的问题是,你会怎么做?
我认为这种带有反射的解决方案可能会很慢..
wpf - 查找所有附加到集合的 ICollectionView
我们有多个基于同一个集合的过滤器。即我们以多种方式展示同一个集合。我想做的是在属性更改时要求所有 CollectionViews 刷新(因为只有在从集合中添加/删除项目时,集合视图才会重新过滤)。有没有办法找到与给定集合关联的所有集合视图。集合视图和集合之间是否存在双向链接,或者确定此链接的方法。
PS我不认为答案是
因为这将为我提供集合的默认视图,而不是与集合关联的所有 ICollectionView。
c# - WPF ObservableCollection CollectionView.CurrentChanged 未触发
我的一个ICollectionView
s 有问题。'事件未触发ICollectionView
。CurrentChanged
请在下面查看我的代码。
XAML:
和 C#(视图模型)
请帮忙。提前致谢。
wpf - 在 WPF 中创建视图的视图
好的,所以我需要ICollectionView
从现有的ICollectionView
. 这个想法是我可以在现有视图上设置任何过滤器/分组/排序,然后从该“基本”视图创建其他视图,实际上是“分层”或聚合我的过滤器等。
ObservableCollection<T>
当源集合(an )更新和数据项更新时,我需要最终视图“自动”更新其项目——比如调用该Refresh()
方法。我需要避免对所有视图调用 Refresh,因为我们不知道原始集合和最终视图之间的所有视图,而且Refresh()
速度非常慢。
我们试图避免滚动我们自己的视图类——我们更愿意(强烈)使用 .net 库中已经存在的东西。
更新
我们已就此致电 Microsoft。我知道其他人也有同样的问题,至少是WPF 博士告诉我的。
c# - 如果基础 DataTable 有零行,ICollectionView.SortDescriptions 排序不起作用
我们有一个 WPF 应用程序,它在 ListView 中有一个 DataGrid。
我们生成一堆或动态列(取决于我们显示的报告)
然后我们进行查询并逐行填充DataTable,这个查询可能有也可能没有数据。(不是问题,应该是空网格)我们将ListView的ItemsSource设置为DataTable的DefaultView。
然后我们(查看用户对app的通行证使用情况,在列上设置排序)排序方法如下:
在零数据表行场景中,排序不“成立”?如果我们动态添加行,它们将不会按排序顺序。
如果在应用排序时 DataTable 至少有 1 行,并且我们动态地将行添加到 DataTable 中,则行 com in 排序正确。
我已经构建了一个独立的应用程序来复制这个......
这很烦人,我可以添加一个检查以查看 DataTable 是否为空,然后重新应用排序...
任何人都知道这里发生了什么,我做错了什么吗?
仅供参考:如果也来自 MSDN,我们的依据是:http: //msdn.microsoft.com/en-us/library/ms745786.aspx
更新:
排序不是“持有”的意思是,ICollectionView.SortDescriptions 有一个 SortDescription,但没有对添加的数据进行排序,如果在添加 SortDescription 时有行,那么只有在基础 DataTable 中没有行时才会再次发生,然后一切效果很好~
wpf - ListView 中的 ICollectionView 排序问题
我看到ICollectionView
引入了 WPF 来处理需要启用排序和过滤的情况。我什至看过几篇对项目进行排序的文章,但我主要担心的是为什么我的方法失败了。让我们看看我的代码:
在代码隐藏中,当单击项目时,我会这样做:
因此,每当单击标题时,ListBox
都需要对项目进行排序。我使用一个名为 Source 的属性来保存集合,然后通过调用来使用它lvItems.DataContext = this.Source.
但是代码似乎不起作用。
c# - IEditableCollectionView 添加的对象类型是什么?
使用 IEditableCollectionView addNew() 方法添加对象相当不错。但是,我不确定它与我拥有的通用代码的效果如何。
我有一个基类的 ObservableCollection。根据用户想要看到的内容,可以用 DerivedA 或 DerivedB (或多个其他派生类型类)填充。它从来没有超过 1 种类型。我对此有以下问题,其中 1 号是主要问题。
1)调用addNew()方法的时候添加了什么类型的对象。我猜是基数,但不确定。如果 Base 是抽象的呢?无论如何我可以确保它添加了一个特定的类型,或者它是否已经实现了它已经添加了最相关的类型?
2) 在使用派生类时,我是否要求 ObservableCollection 遇到麻烦?
3)派生类都单独实现 IEditableObject 但 Base 没有。我的愚蠢是错误的,因为我认为当你实现时你必须定义方法。我可以将它们定义为抽象,然后在派生类中覆盖它们,对吗?如果我不这样做,我会遇到 IEditableCollection 的麻烦。
更新:
我成功地修复了第 3 项)基类实现 iEditableObject 并将抽象虚拟方法扔到它的派生类中。addNew 方法不起作用,即使列表中填充了派生项。
我见过一种半解决方案。.Net framework 4.0 实现了一个名为 AddNewItem 的新方法,您可以在其中定义要添加的项目。应该解决非无参数构造函数和基类的问题。但是我在 3.5 工作
有什么我能做的吗?
wpf - 更改属性值后重新建立 WPF 数据绑定
我现在正在玩 ICollectionView,遇到了一个问题,我认为我理解“为什么”,但不理解“我该如何解决它”。:)
我有一个数据绑定到 ICollectionView 的 ComboBox,它最初是使用以下代码设置的:
一切正常,直到我执行一段代码,该代码生成一个新的IEnumerable<string>
并使用与上面相同的代码再次设置 NameView。一旦我这样做,CurrentItem
将不再正常工作。
ObservableCollection<string>
在将数据绑定到 ComboBoxes之前,我遇到过这个问题,我通过使用Clear()
而Add()
不是将ObservableCollection<string>
属性设置为新的ObservableCollection<string>
.
我的问题包括: 1. 如果我希望能够将属性设置为新集合,我可以以某种方式重新建立与新集合的数据绑定吗?如果是这样,怎么做?如果不是,你能解释一下为什么这根本不可能的背后的 WPFisms 吗?2. 处理ObservableCollection<string>
or变化的最佳方法是ICollectionView
什么?我只是清除和添加的方法是唯一的方法吗?
wpf - 如何绑定到 ICollectionView 的 CurrentItem
我想要一个属性到当前项的一个ICollectionView
我该怎么办呢?ICollectionView
用于绑定到组合框,如何将另一个控件绑定到的ICollectionView
选定项?