问题标签 [collectionview]

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 投票
4 回答
4130 浏览

c# - 如何更改 CollectionView.Source 的绑定?

最初我在 XAML 中有这段代码:

但我想在 C# 代码中保留一个绑定对象,以便能够动态更改它的 xpath。目前我有这个代码:

这会编译并且不会抱怨,但是当被调用时它只会导致一个空列表。我似乎无法在网络上找到相关的示例——它们中的大多数都与数据提供者打交道,但我想更改绑定。

  • 有人知道如何解决这个问题吗?
  • 还是有更好的方法来做到这一点?
  • 也许从collectionview中检索绑定对象并更改它?
0 投票
1 回答
5376 浏览

c# - C#/WPF CollectionView - 如何在特定位置添加项目

我正在使用ListCollectionView对象来显示项目列表。目前,我正在构建一个包含其中两个列表的屏幕 - 一个,completeList,包含所有可用项目,另一个,sortedList,包含其中的一个子集,并且项目顺序相关。这里可能采取的行动是

  • 添加或删除任何completeList项目到/从sortedList
  • 向上或向下移动项目sortedList
  • 保存的内容sortedList

现在,我的问题是:是否有可能将项目插入到sortedList定义的位置?

现在,无论当前标记的项目如何,它们都将始终添加到列表的末尾,而且我没有找到解决方法 - 除了明显的肮脏黑客之外,这将使我在需要之后存储所有项目位置,从列表中删除它们,添加新项目,然后以正确的顺序重新添加所有存储的项目。

ListCollectionView 是否提供任何此类功能,或者是否有另一个 CollectionView 类可以解决问题?

0 投票
1 回答
692 浏览

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

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

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

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

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

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

谢谢

0 投票
1 回答
697 浏览

wpf - 检测 CollectionView 何时刷新

如何检测集合视图何时刷新?

0 投票
4 回答
6130 浏览

c# - 使用 ICollectionView 多次过滤集合

我正在尝试过滤显示在 DataGrid 中的 ObservableCollection。这第一次效果很好,但是当我再次尝试过滤时,它使用 sourcecollection 而不是过滤后的结果。短代码示例:

所以我想要做的是只过滤显示在我的 DataGrid 中的项目,而不是整个集合(当然,第一次使用过滤器时,它将使用整个集合)。

0 投票
1 回答
670 浏览

c# - 当高度未固定时,CollectionView 过滤器会冻结 UI?

我有一个 ListBox 数据绑定到 ObservableCollection 并且有一个复杂的 ItemContainerStyle (带有图像、进度条和文本)

当我尝试在其 CollectionView 上应用过滤器时,集合中有大约 200 个项目,UI 将冻结 2-3 秒。这仅在 ListBox 的高度不固定(即允许增长)时发生。当 ListBox 高度设置为一个值时,它是即时的,例如 500

有没有办法解决这种冻结?在 ListBox 上具有固定高度不是可接受的结果,因为它会导致垂直滚动条出现在已经具有垂直滚动条的控件中

0 投票
2 回答
664 浏览

wpf - 当 CollectionView.SourceCollection 改变时执行代码的推荐方式

我有一个 ObservableCollection 项目,我想同时在两个控件中呈现:一个用于编辑当前选择的属性以及添加和删除项目,另一个用于显示整个集合并突出显示当前选择。

为此,我创建了一个 CollectionViewSource 绑定到我的项目,并在我的控件中绑定到该项目:

问题在于,在 DisplayControl 中,我想以无法通过 XAML 指定的特殊方式排列项目:项目的放置不仅取决于其自身的属性,还取决于集合中其他项目的属性。因此,每当将项目添加到集合中或从集合中删除时,或者当集合中某个项目的属性发生更改时,我都需要执行一些重新定位代码。

我想知道,推荐的解决方法是什么?受 ItemsControl.ItemsSource 的启发,我正在考虑将 TheItems 属性设为 IEnumerable 类型,但我无法弄清楚如何继续。

任何输入将不胜感激!

0 投票
2 回答
10099 浏览

c# - WPF 中的分页集合视图

WPF 中是否有 PagedCollectionView 的实现?它存在于 Silverlight 中,但不在 WPF 中。

如果没有,实现这一点的最简单方法是什么?

0 投票
1 回答
1647 浏览

wpf - ICollectionView.Refresh 不会重新过滤集合

我的视图模型中有 3 个 cascading ICollectionView,其中一个依赖于另一个。第一个不绑定到视图上的控件,而是用作两个即将出现的作为主细节显示给用户的键过滤器。

我的问题是,我将过滤谓词附加到主集合视图,但是当我Refresh从它调用时,它根本不会进入过滤器。我什至尝试从过滤谓词中抛出一个异常,所以如果调试器无法访问该代码,我仍然会看到它到达,但没有抛出异常。

我调用 Refresh 的原因是什么,但它没有带我进入过滤谓词 - 这意味着它没有重新创建视图?

0 投票
1 回答
2844 浏览

mvvm - 如何使用 Collection View MVVM 进行分组?

我对 MVVM 还很陌生,最近我开始了一个清理我的代码隐藏的项目,我正在一点一点地将所有内容移至 Model 和 ViewModel。

我的问题是,现在,您如何在没有任何代码的情况下使用 Collection View 进行分组?在阅读了 Stackoverflow 上类似问题的答案后,我以为我已经弄清楚了,但我仍然无法让它工作。可能是一个愚蠢的错误,但如果有人可以查看我的代码并让我知道他们的想法,我将非常感激。所有的反馈都是很好的反馈,我真的很想成为一名优秀的程序员 :)

该列表是 Menu 类中 ObservableCollection 类型的 btw。