问题标签 [compositecollection]
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 - 使用 CompositeCollection 将两个 ObservableCollection 和 Bind Datagrid 与此 MergedCollection 作为源合并
.Xaml
.Xaml.cs
ViewModelCombine.cs
使用 CompositeCollection 将 Datagrid 绑定到 MergedCollection 作为 itemsource 时出现问题。在两行而不是一行中显示数据并在此处检查输出。
要求是在一行中显示所有列...!谢谢。
wpf - 在数据网格中,当还使用 CompositeCollection 时,如何为每一行绑定不同的 ItemsSource?
我有一个 DataGrid,其中 ItemsSource 绑定到 ObservableCollection
ObservableCollection 中的每个项目也有一个 ObservableCollection 字符串。
其中一列是包含 ComboBox 的 DataGridTemplateColumn。我希望每一行的 ComboBox 包含该行 ViewModel 中字符串的 ObservableCollection 中的项目。如果我正常绑定它,这是可行的。但是,如果我使用的是 CompositeCollection,我似乎无法让它工作。
我不确定要使用什么来让 Binding 正常工作。没有 CompositeCollection,我可以简单地做:
在搜索中,我知道您需要为 CollectionContainer 设置一个源,但大多数示例是将其设置为对所有行都相同的静态列表。我需要将每一行绑定到该行的 ViewModel 中的 ObservableCollection。
我试过了:
但这会导致以下错误:
c# - C# WPF 静态项和绑定组合框
我正在尝试在 WPF 中做一些简单的事情,但找不到方法。
我在 DataGrid 标头中有一个 ComboBox 来过滤数据。数据绑定到我所有数据的 GrouBy 语句。
这些显示了一些 CheckBox XAML 代码是:
前绑定背后的代码是:
而这项工作。
但是现在我想在 ComboBox 的末尾或开头添加 2 个按钮以选中和取消选中所有选项,但我似乎找不到如何在动态数据模板中添加这些静态按钮。
编辑对 grek40 的回答: 我想要复选框之前或之后的组合框项目中的按钮。
CompositeCollection 可以提供帮助,但我似乎无法让它发挥作用。
谢谢你
wpf - 如何在具有 CompositeCollection 作为项目源的 wpf DataGrid 上设置分组?
我正在使用 c# 和 WPF。我有一个需要绑定到多个数据源的 WPF DataGrid。我所做的是为每个数据源创建以下代码:
'myCompositeCollection' 是我的网格项目来源。我无法创建一个列表,因为数据源来自不同的实体,我不想处理每个可观察集合的添加/删除/更新/重置。
但是,每个不同的数据源都应该在网格中的不同组中。如何添加一个分组(甚至是自定义实现)而不是 ICollectionView 的常规“GroupDescriptions”,它在 CompositeCollections 上不起作用?
谢谢。
c# - WPF CompositeCollection 按每个集合视图分组
我设置了一个CompositeCollection
包含两个或多个集合,如下所示(简化):
...
然后在GridView
. 但是,我似乎无法添加GroupDescriptions
到CompositeCollection
,只能添加单个CollectionViewSource
元素。
我想做的是按集合本身分组,这样ListView
有一个标题,然后是第一个集合的内容,另一个标题,然后是第二个集合的内容,等等。
我是否在试图以这种方式对这些进行分组时发现错误的树?
c# - 如何合并集合中的两个源并在组合框中正确显示它们?
我有一些让我生气的 XAML 代码。首先是为未引用的值添加一个虚拟项目。
为此,我必须实现 aCollectionViewSource
和 a CompositeCollection
。现在我无法选择第一个组合框项目,它出现但我无法选择它,因为我设置了DisplayMemberPath
在 XAML 中设置了(我猜是这样)。此外,分隔符看起来不像预期的那样。
我来给你展示:
如果我不设置 XAML DisplayMemberPath
,我可以使用 Dummy Item 但绑定的项目显示不正确:
XAML:
我所需要的只是一个虚拟/占位符组合框项目,它显示在ObservableCollection<myClass>
. 难道我的思维方式不对?有更聪明的解决方案吗?我在我的解决方案中遗漏了什么吗?
c# - 如何过滤 CollectionContainer
我在结合使用CompositeCollection执行ICollectionView过滤时遇到问题。
插图描述了我想要实现的目标: 带有过滤器文本框、项目集合和“添加”按钮的窗口
要求:
- “添加”按钮必须是WrapPanel的一部分
- 过滤应该通过ICollectionView.View.Filter执行
调试窗口.xaml:
DebugWindow.xaml.cs:
问题是,这是与Resources中定义的CollectionViewSourceview = CollectionViewSource.GetDefaultView(MyCollection);
相关联的View,而不是CollectionContainer的 View 。所以刷新了错误的View,显示的View根本不刷新。
我能够通过扩展CollectionContainer来实现所需的行为,并连接到 CollectionChanged 事件:
并将其暴露给代码隐藏:
问题: 有没有办法在不将控件暴露给代码隐藏的情况下实现我需要的行为?是否可以将 MVVM 绑定到CollectionContainer的视图?
在此先感谢,很抱歉发了很长的帖子。
c# - 自定义迭代器如何通知订阅者对其迭代项的更改(想想“INotifyCollectionChanged”)?
我们试图将两个子集合的内容公开为一个额外的、包罗万象的IEnumerable
属性。人们建议使用CompositeCollection
这种情况,但有两个问题:
- 似乎没有只读变体,但即使有......
- 由于它依赖于模型层,它并不真正适合模型层
System.Windows.Data
相反,我的想法是使用自定义IEnumerable
实现。这是一个虚构的例子,展示了这个概念......
虽然这确实根据需要枚举了所有孩子,但我看到的问题是它All
没有意识到,也没有通知更改Dogs
或Cats
因为它没有实现INotifyCollectionChanged
甚至INotifyPropertyChanged
*,这让我想知道这是否是正确的方法首先去。
* 这实际上有点容易“坚持”。只需订阅
INotifyCollectionChanged
事件Dogs
并在处理任何这些事件时Cats
发出更改通知。All
但这是一个全有或全无的事情,我不确定这是正确的方法。
我的下一个想法是推出我自己的轻量版 CompositeCollection,但我不禁认为这是使用 18 轮车去商店买牛奶。但它似乎确实有最大的希望。
有没有其他方法可以使自定义 IEnumerable 正确处理来自内部集合的通知?(我也不反对一开始就放弃将其作为model
属性,而是在 UI 层中进行组合。我是否这样做取决于我在这里得到的答案。)