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

wpf - Type of object created by ListCollectionView.AddNew

How does ListCollectionView.AddNew determine the type of object it creates, and how could one affect it?

I have a hierarchy of a few types (Base, DerivedA, and DerivedB), and currently my WPF Toolkit DataGrid creates DerivedA objects (why, I don't know -- probably because almost all the data in the grid is of that type), but I'd like it to create DerivedB objects instead.

Update: I've tried deriving a new class from ListCollectionView and implementing a new AddNew method for it, and now I'm almost there: the only remaining problem is that after adding a new item, a new new item placeholder isn't added, so I can only add one item. My current approach looks somewhat like this:

0 投票
1 回答
1779 浏览

wpf - ListCollectionView 移动到新创建的记录

使用 ListCollectionView 时,如何将焦点移至新创建的记录?我的声明是

我用来插入一个人的代码是

我试过使用 MyView.MoveCurrentTo(Dunno what to put here),但似乎没有任何效果。

如果我正在使用底层的 ObservableCollection,那么我会转到索引 0,但我不能依赖它,因为 ListCollectionView 可以进行排序和过滤,因此记录不再与 ObservableCollection 的顺序相同。

0 投票
1 回答
4940 浏览

wpf - 绑定到 XAML 中的 ICollectionView.Count 属性

我正在尝试将文本框绑定到 XAML 中已过滤的集合视图的计数。它不会产生任何错误,但也不会产生任何输出。有谁知道如何做到这一点?

这是我的 XAML 的一些片段:

...

基本上,我试图在列表中显示过滤项目的计数。

0 投票
1 回答
332 浏览

wpf - WPF 工具包 Datagrid 和 ListViewCollection SortDescriptors

我对数据网格有一个奇怪的问题。我有一个包含 2 个项目的列表,每个项目内都有一个 ListCollectionView。

数据网格绑定到所选项目的 ListCollectionView。

如果我(在代码中)向所选项目的 ListCollectionView 添加排序描述,请选择项目 2,然后再次选择项目 1 ListCollectionView sortDescription 是“消失”

有任何想法吗?

0 投票
2 回答
15676 浏览

wpf - WPF 在同一个 ListCollectionView 上使用多个过滤器

我正在使用 MVVM 设计模式,ListView 绑定到 ViewModel 上的 ListCollectionView。我还有几个用于过滤 ListView 的组合框。当用户从组合框中选择一个项目时,ListView 将针对所选项目进行筛选。每当我想在已过滤的内容之上进行过滤时,它都会撤消我以前的过滤器,就像它从未发生过一样。移除过滤器也是如此。删除一个组合框的过滤器会删除所有过滤器并显示原始列表。是否可以在同一个 ListCollectionView 上有多个单独的过滤器?

我做错了什么,还是根本不支持?您可以在此处找到我的应用程序的屏幕截图,以了解我想要完成的工作。这是我的过滤代码...

0 投票
3 回答
9844 浏览

wpf - 在 ListView 中显示分组项目的总和

我正在使用 MVVM 设计模式创建一个 WPF TimeCard 应用程序,并且我试图显示用户每天打卡的总时间(总)。我有一个 ListView,其中所有 TimeCard 数据使用以下 XAML 分组:

这甚至可能吗?起初我以为我会创建一个 CollectionViewGroup 的部分类并添加我自己的属性。但我不确定这是否会奏效。也许有更好的解决方案......有什么建议吗?

0 投票
1 回答
595 浏览

wpf - WPF ListView.CurrentChanged 太快无法绑定

我的情况:

  • MVVM
  • ListView+Details(自定义用户控件)
  • 绑定到 MV.Items 的列表 (IsSynchronizedWithCurrent=true)
  • 绑定到 MV.Items.Current 的详细信息
  • MV.Items.Count == 100
  • 大约 0.2 秒读取详细信息(懒惰模式)

当我按住列表上的向下箭头时,会发生非常奇怪的事情:

  • 列表项目顺序更改
  • 当前随机顺序的变化
  • CPU 使用率急剧增加,最终全部挂起。

我读过一些帖子,说应该在后台启动计时器或运行处理程序,但我无法做到这一点,因为所有绑定 WPF 都为我做了。

有什么方法可以指示我的 DetailsControl 中的绑定,在接受 CurrentItem 之前等待一段时间?还是我应该从干净的解决方案中辞职并在我的 MV 中编写自定义代码来处理它?

0 投票
1 回答
10699 浏览

datatable - WPF BindingListCollectionView 到 ListCollectionView 的 DataTable 作为 ItemsSource

我想对具有 DataTable 作为 ItemsSource 的 ListView 进行自定义排序:

这是我的排序功能的第一行:

第二行抛出一个类似的execption:

无法将“System.Windows.Data.BindingListCollectionView”转换为“System.Windows.Data.ListCollectionView”

有没有人有解决方案?谢谢 4 个答案

0 投票
2 回答
362 浏览

wpf - 如何在单独的线程中循环遍历集合并在绑定的 ListBox 上反映当前项目?

我有一个绑定到 ObservableCollection 的 ListBox。集合中的每个项目都表示不同的步骤以及执行该步骤的方法。我想做的是在集合中有一个 BackgroundWorker 循环,运行每个项目的操作方法,并让当前步骤由 ListBox 反映。

我的第一次迭代没有使用线程,只是为了让步骤运行。现在我创建了一个 ListCollectionView,将其设置为表示 ObservableCollection 中的数据,并将 ListBox 的 ItemsSource 绑定到它而不是 ObservableCollection。我注意到运行这些步骤仍然会阻止 UI 线程的更新,即使我明确地增加了 CurrentItem。

我想在 BackgroundWorker 中使用 ListCollectionView,但我发现的大多数示例都是假设您正在修改列表的内容或排序而编写的。我不想这样做;我只是想为每次迭代增加 CurrentItem。我猜只是引用它不会让我走得太远,因为它与 UI 线程上的项目相关联并且编译器会抱怨。任何想法或指示将不胜感激。

0 投票
1 回答
1889 浏览

wpf - 已更改 ItemsSource 上的 DataGrid 排序保留

我正在使用 MVVM 方法。

我有一个名为 AllSomethingViewModel 和 AllSomethingView 的 ViewModel 和 View。View Model 包含 SomethingViewModels 列表和 SelectedViewModel。该视图包含一个绑定到 AllSomethingViewModel 的 SelectedVM 属性的用户控件和一个允许我选择 VM 的列表框控件。基本上,当我选择一个新的 VM 时,用户控件的 DataContext 会发生变化,因此与 SomethingViewModel 关联的视图会使用新信息进行更新。

SomethingViewModel 包含一个名为 ObservableCollection(DataPoints) 数据的对象列表。

我有一个绑定到数据的 DataGrid,并且定义了绑定到数据成员的列。这工作正常。我可以更改视图并且此数据网格会更新,一切都很好。

我遇到的问题是,当数据上下文发生变化时,我希望对数据网格应用的任何排序都保持不变。

在与 SomethingViewModel 关联的视图上,我可以订阅 DataContextChanged 事件,但我不确定要从那里做什么才能应用排序。

例如。我有 2 个SomethingViewModel。所以在我的列表中有两个选项。当我选择第一个时,我得到了我的数据网格和我的数据。在数据网格中,我决定按 DateCreated 升序排序。然后我转到我的第二个虚拟机,数据上下文发生了变化,因此网格中的数据已更新,但不再排序!