问题标签 [listcollectionview]

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 回答
862 浏览

c# - CollectionView 实时排序回调

我有一个TreeView使用 aListCollectionView的自定义IComprarer和实时塑造来订购它的孩子。当当前选择TreeViewItem的视图在视图中重新排序时,我希望TreeView自动滚动到TreeViewItem的新位置。但是,我找不到在ListCollectionView应用新排序时收到通知的方法,而且我想要的行为似乎没有内置到TreeViewControl.

有没有办法在ListCollectionView重新计算排序顺序时通知我?

0 投票
1 回答
991 浏览

c# - 如何在 ListCollectionView 中搜索?

直到昨天我才使用 ListView 并将其绑定到 List<>。
然后我在一些文章中读到,将 ListView 绑定到 ListCollectionView 以便于过滤是有意义的。我这样做了,效果很好。
但是现在我不知道如何在 ListCollectionView 中找到一个项目。
直到昨天我才使用这段代码,它适用于列表:

但是对于 ListCollectionView 似乎没有类似 StartsWith
我如何在(过滤的)ListCollectionView 中搜索?

0 投票
1 回答
1132 浏览

wpf - 对分页列表框中的集合进行排序和过滤

我有一个包含 10,000 个项目的数据库,您可以在应用程序运行时向其中添加和删除。

我有一个最多显示 100 个项目的 ListBox,并且支持分页。

您可以对 10,000 个项目进行过滤和排序,这些项目需要立即反映在列表框中。

我有一个按钮,只要它通过过滤器,它就会随机选择一个项目。

用于此类操作的最佳集合/视图集是什么?

到目前为止,我的第一步是ObservableCollection在我们将调用的数据库中创建所有项目MainOC

然后List通过解析创建与过滤器匹配的所有项目,MainOC我们将调用它FilteredList

ListCollectionView然后根据上面的内容创建一个List包含前 100 个项目的项目。

缺点:

  • ListCollectionView每次应用排序操作时,您都必须重新创建。
  • ListCollectionView您必须在每次页面时重新创建。
  • ListCollectionView每次更改过滤器时都必须重新创建。
  • ListCollectionView每次添加或删除项目时,您都必须重新创建MainOC.

我缺少更好的方法吗?

例如,我看到您可以将过滤器应用于ListCollectionView. ListCollectionView我应该用所有 10,000 个项目填充我的吗?但是,我怎样才能限制我ListBox显示的项目数量呢?

我应该直接对数据库进行过滤和排序吗?我可以FilteredList直接从数据库构建并以此为基础创建我的数据库ListCollectionView,但这仍然具有上面列出的所有缺点。

寻找您可以提供的任何输入!

0 投票
0 回答
694 浏览

c# - 如何在 WPF 的 ViewModel 中使用 Caliburn 微事件聚合器

在我的 UserControl 中,我使用了一个包含三个参数的 ListCollectionView。其中两个使用个性化的 RichTextBox 来解析 HTML。在此控件上,集合中的下一个/上一个项目有两个按钮。

我正在尝试在 ViewModel 中使用事件聚合器进行两项操作:

  1. 对于当前项,我需要在一个xml文件中写一个参数
  2. 对于当前项,我需要为两个 RichTextBox 重新初始化 htmlformatter

第一个操作:

MarkPopAlertAsRead 是我需要与事件聚合器关联的方法。

第二个操作:

使用此代码,如果我更改了当前项目,这两个参数将从屏幕上消失,因此我需要重新加载 Textformatter。

和观点:

我的愿望是在集合更改时执行这两个操作(通过单击下一个/上一个按钮)。我需要一些实施帮助,因为 Caliburn Micro 文档对我没有帮助。

0 投票
1 回答
815 浏览

wpf - 如何在 WPF 中执行 ListViews 和 DataGrids 的同步分组/过滤?

我正在尝试在我的应用程序中创建与MusicBee软件在其音乐选择界面中使用的相同效果(下面的屏幕截图)。

有一个带有 DataGrid 的下部面板,以及一个带有一些 ListViews 显示分组行的上部面板。当我在上面板的“流派”列表中单击“摇滚”时,其他列表会更新,DataGrid 也会相应地进行过滤。如果我继续单击上方面板中的其他列表,DataGrid 过滤会变得越来越严格,并会继续进行相应更新(仅显示与上面的过滤器匹配的行)。

此外,还有额外的行:All (N items)[Empty],我想必须以某种方式将其添加到视图源中。

在此处输入图像描述

我开始阅读有关ListCollectionView课程的内容,因为它的文档说:

“当您绑定到数据集合时,您可能想要对数据进行排序、过滤或分组。为此,您可以使用集合视图。”

在我看来,分组和过滤就是我想要在这里完成的全部内容,但我发现缺乏示例,甚至不知道从哪里开始,无论是 ViewModel 端还是 XAML 端。

0 投票
0 回答
158 浏览

c# - 导航时 ListCollectionView 异常错误“System.Reflection.TargetInvocationException”

我已将 WPF 弹出视图与 ListCollectionView 绑定。我有两个下一个/上一个按钮,所以当用户点击时,他可以导航到集合中。但是当用户在最后一个元素上单击下一个(或在他在第一个元素上时上一个)时,我遇到了问题。

我得到一个“System.Reflection.TargetInvocationException”。似乎 MoveCurrentToNext/Previous 尝试继续一个空项目。我已经使用断点进行了测试,并且在我的集合中有两个元素,当我在最后一个元素上时,我可以使用 MoveCurrentToNext。没有必要时是否有不使用此方法的解决方案?

查看(下一个按钮的示例)

谢谢你的帮助。

0 投票
0 回答
398 浏览

c# - 无法在 WPF DataGrid 中正确显示分组数据

我正在尝试显示我的 EF 查询结果(它有一个 group by 子句)并将其显示到 DataGrid 中。我正在尝试复制此处的示例

http://wpftutorial.net/DataGrid.html

所以这是我的 XAML 代码

这是我的视图模型

这就是我的查询结果

这是上面代码的结果 我确实得到了正确的密钥,但如果你查看我的代码,我有一个针对密钥项的集合。此处未显示。我如何让它在每列火车上显示?

编辑

我想我对此有更多的细节。这是我的 QueryResult 集合的样子

在此处输入图像描述

在此处输入图像描述

基本上我的 QueryResult 有 10 个项目,其中每个项目都有一个名称、项目和 ItemsCounts。每个项目本身有 1 个项目,其中有一个键和组。该组基本上包含我想在我的 DataGrid 中显示的项目,这些项目根据出现的父 10 条记录分组。

0 投票
1 回答
196 浏览

c# - 具有过滤功能的 ListView 自定义缓存

我的 C# WPF 应用程序中有一个ListViewwith a GridViewItemsSource绑定到在fromListCollectionView上创建的a 。我将用于动态排序、过滤和分组,所有这些都可以从.ViewModelObservableCollection<MyClass>ListCollectionViewView

当我更改过滤器或打开/关闭分组时,会重新创建所有可视列表视图项,这会导致 UI 冻结大约一秒钟。由于我显示了大约 250 个项目,并且大约有 10 列(其中一些具有带有进度条的单元格模板),因此这不足为奇。

现在,我知道显而易见的答案是启用虚拟化。但是,这会带来一些不良影响,例如滚动变得生涩或滚动条在滚动时改变其大小(分组时会发生这种情况,因为组的高度不同,因此虚拟化堆栈面板无法正确计算总高度首先)。

我想做的是为ListView原始列表中的每个项目保留一个视觉元素(未过滤和未排序,ObservableCollection<MyClass>ListCollectionView.

我希望这个解决方案能提高我的应用程序的性能,因为我很少更改原始列表,但我经常更改过滤、排序和分组。

ListView我是否需要创建一个继承自(或)的自定义控件GridView来执行此操作,还是有其他方法?

0 投票
1 回答
2693 浏览

wpf - 如何同步 ListCollectionView.CurrentItem 和 ListView.SelectedItem?

我有一个 ViewModel 包含一个ListCollectionView属性,一个 View 包含一个ListView控件,其ItemsSource属性是绑定到 ListCollectionView 的数据:

视图模型:

视图(大量精简):

请注意Binding Pacientes/带有斜杠,试图绑定到Pacientes.CurrentItem.

我的目的是提供一个主/详细视图,其中一个 ListView 显示所有项目,一个侧面板显示来自当前/选定项目的信息。

事实是:当我在 ListView 中选择一个元素时,我希望Pacientes.CurrentItem被设置,但显然不是!

所以我的问题是:如何通过选择数据绑定 ListBox 上的项目来设置 ListCollectionView.CurrentItem?

0 投票
1 回答
426 浏览

c# - 导航到 ListCollectionView 中的特定项目

我正在尝试根据 SelectedDay 的 Date 属性的值导航到 ListCollectionView 中的特定项目。

虚拟机

<Day>对象有一个属性,Date我希望它与ObjectDate中的 Property匹配,<ShootingDay>以便我可以导航到Item inside的ShootingDayInfoListwhereSelectedDay.Date匹配项中的项目。DateShootingDayInfoList

我已经尝试过了,但这不起作用,因为 Selected Item 不是同一个对象的一部分。

我怎样才能使这项工作?我对这一切都很陌生。