问题标签 [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.

0 投票
1 回答
3795 浏览

.net - 如何通过数据库绑定将选项“全部”添加到 WPF 中的组合框

ComboBox在 WPF 中有以下内容。我知道我可以ALL使用 CompositeCollection 添加选项,但我不知道如何。如果有人帮助我提供一个简短的教程,那就太好了。

0 投票
2 回答
9496 浏览

c# - CompositeCollection + CollectionContainer:将 CollectionContainer.Collection 绑定到用作 DataTemplates DataType 的 ViewModel 的属性

我没有得到正确的 Binding 语法来访问在其资源中定义 a 的a的CatsDogs属性。MyViewModelDateTemplateCompositeCollection

我必须插入什么????将DogsandCats集合绑定到CollectionContainers?

0 投票
1 回答
730 浏览

c# - 使用compositecollection而不是observablecollection的优点是什么?

我需要一个适用视图模型的列表,并且正在讨论是尝试制作复合集合还是创建它们继承的共享接口。一种方法是首选吗?

我假设复合集合维护独立于基础集合的项目索引,因此可以有复合集合项目#0(项目类型A)1(项目类型B)2(项目类型A)3(项目类型 A),并保持列表中的顺序。

这两种方法之间有什么主要区别吗?

我想我会更详细地解释我通常做什么。通常我需要一个 selectedItems 列表,我可以创建一个 Object 类型的 ObservableCollection,然后让树视图根据数据类型应用不同的数据模板。然而,我认为最好有一些类型安全并且知道不只是任何对象都被抛出到集合中,所以我实现了一个接口。然而,有时我觉得很可笑,因为实现接口的对象之间没有足够的共享属性,所以我觉得尝试制作一个共享接口很可笑。

使用每种可能类型的单独列表实现复合集合可能更有意义。

0 投票
0 回答
87 浏览

c# - compositeCollection DataContext false warning, renaming issue

I try to bind a ListBox.ItemsSource to a CompositeCollection containing three CollectionContainers. Each CollectionContainer is bound to a ObservableCollection in my ViewModel.

Because the CompositeCollection does not know my DataContext, i set the Source to a "Proxy" which is a FrameworkElement that knows my DataContext.

This works as expected at runtime, althought it does show a warning at design time on DataContext: Cannot resolve Property 'DataContext' in data context of type 'object'.

Is there a way to solve this designtime issue as the renaming is not applied to my Bindings as the designer cann't resolve them properly?

0 投票
1 回答
396 浏览

wpf - 画布上的列表框:覆盖多个画布或使用 CompositeCollection?

在带有 mvvm 的 wpf 中,我使用带有 Canvas 作为 ItemsPanelTemplate 和 DataTemplates 的 ListBox 来自定义外观。
我想通过首先将类型 1 的所有项目添加到绘图中,然后将类型 2 的所有项目添加到图形中来提高性能。
我可以创建两个 ListBoxes,它们都使用 Canvas 作为 ItemsPanelTemplate,它们将是叠加层。
平移和滚动可以通过绑定来同步。
这样我就可以相互独立地为两个列表提出 PropertyChanges。

问题:您是否体验过覆盖画布对性能的好处或坏处?

我不确定是否也可以将 CompositeCollection 用于一个 ListBox 的 ItemsSource。或者就此而言,给这两种类型一个共同的子类并保留 ObservableCollection。

问题:您是否认为可以为 Collection 的不同部分以某种方式为具有 CompositeCollection 的列表提供单独的 PropertyChanges?

编辑:
假设我有大量用于画布的点、线、标签,每个都有不同的类型,但是具有共同的基本类型。我使用 DataType: 等选择 DataTemplate DataType="{x:Type my:Point}"DataType="{x:Type my:Line}"首先
,我希望用户尽快看到这些行。我举起PropertyChanged("Lines")并且线条的 ListBox+Canvas 可见。
在我提出的背景PropertyChanged("Points")工作者中,点的 ListBox2+Canvas2 是可见的。
当我在另一个后台工作人员中完成时PropertyChanged("Labels"),标签的 ListBox3+Canvas3 是可见的。

0 投票
2 回答
1753 浏览

c# - 复合集合中带有可观察集合的 WPF 组合框

我正在尝试使用可观察的集合和使用复合集合的标题行填充组合框。标题在那里,但我无法填充 OC 对象。我刚开始使用 OC,所以可能是我缺少的一些基本内容。

客户等级:

我从数据表中填充了 OC,它是一个依赖属性(我验证了 OC 是否被正确填充):

在 usercontrol 资源中,我将 VM 指定为静态资源:

从我读过的帖子中,我尝试了两种不同的方式。

使用 x:reference 收集资源的第一种方式:

指定来源的第二种方式:

0 投票
0 回答
115 浏览

c# - ContentProperty 不适用于列表

我要归档的是一个类似于CompositCollection for WinRT 的类。

为此,我有 CompositCollectionView 类。此类实现 ObservableCollection 并具有一个属性 Collection(它本身就是一个 ObservableCollection)。添加到 Collection 的每个 Object 都将添加到 CompositeCollectionView,除非它是 CollectionContainer。如果它是一个 CollectionContainer,它的所有项目都将被添加。

CompositCollectionView 和 CollectionContainer 都具有 ObservableCollection 的属性 Collection。两者都设置了 ContentProperty。对于 CollectionContainer 这有效,对于实现 ObservableCollection 的 CompositCollectionView,项目将直接添加到 CompositCollectionView。

它使集合具有比属性更高的优先级。有没有办法改变这个?

0 投票
1 回答
2951 浏览

wpf - CompositeCollection 的源:为什么我不能绑定另一个控件的数据上下文,但必须使用 CollectionViewSource?

我最近提出的另一个问题中,有人告诉我使用 aCompositeCollection来访问 a 的各种来源ListBox

该示例使用 aXmlDataProvider来提供一些虚拟数据。但是,我有一个包含数据的视图模型。

我花了一些时间来绑定我ListBox的视图模型的数据。最终我想通了,但现在我想了解为什么我以前的方法不起作用。

成功的关键是 CollectionViewSource。我最初的尝试是:

我的想法是找到具有适当 DataContext 的 Window,并绑定数据。你可以通过FindAncestor或 via做到这一点ElementName,所以我都试过了。这对我来说似乎很合乎逻辑,但显然我错了。运行应用程序时,我什么也没看到。
我还尝试绑定另一个具有数据上下文的控件;例如StackPanel.

那么,为什么我不使用FindAncestorand ElementName1获取数据,而必须CollectionViewSource明确提供?


这是有效的代码。


1不,我没有忘记给窗口命名,也没有错字。

0 投票
1 回答
265 浏览

wpf - 使用 CompositeCollection 展平集合集合?

我有一个ObservableCollection带有多个对象的MyParent对象,而这些对象又拥有自己ObservableCollectionMyChild对象。现在我想在一个网格视图中显示所有 MyChild对象,这自然需要一个扁平化的集合。

CompositeCollection看起来很有希望。

问:是否可以将任意数量的集合包装在一个 中CompositeCollection

如果没有,有替代方案吗?

0 投票
1 回答
62 浏览

c# - DateGridTextColumn 禁用空值

CompositeCollection我有一个绑定了4的 DataGridTextColumnObservableCollection

之一DataGridTextColumn,像这样绑定:

哪里 cmpc 是我的CompositeCollection,哪里 Ligne 不能得到一个空值。问题,我在这个屏幕截图中采用了很多空值:http ://www.zimagez.com/zimage/compositecollection.php 如何忽略它具有空值的每一行?IsNullAble = false是否存在类似的东西DataGridTextColumn