问题标签 [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 不可冻结?
我正在使用 MVVM 模式编写应用程序。我通过将视图的 DataContext 属性设置为 ViewModel 的实例来向视图提供数据。一般来说,我只是从那里使用 Binding 并按照我的方式行事。
最近,我尝试使用 ViewModel 提供的“Select Item”集合之外的“额外”元素来实现一个 ComboBox。
问题是,CompositeCollection 不是 Freezable: Freezable Objects Overview。这只会导致静态 ComboBoxItem 出现,而我的绑定表达式没有任何结果。
我对这个问题的最初反应是实现我自己的可冻结的 CompositeCollection版本。然而,这引出了以下问题:
为什么 CompositeCollection 首先不是 Freezable ?
我担心的是,这些决定通常是有原因的,我觉得我对 Freezable 了解得不够多,无法说出他们为什么没有继承它。我知道我可以实现这个集合,但我担心如果我这样做会在性能上产生可衡量的差异。
任何帮助,将不胜感激。谢谢!
另外:请注意,我意识到我可以插入 Null 或其他一些特殊值,并提供模板或 valueconverter 来做我想做的事。这不是我感兴趣的问题……只有上面粗体字的问题。
更新:
在 ArsenMkrt 的评论带来的一些进一步研究之后,我相信这实际上是一个疏忽。证据是这样的:
- 有一个可冻结的集合,称为
FreezableCollection<T>
. 它不会产生 CollectionViews,这使得它不适合我的需求。 - MSFT 的 Sam Bent 在上面的链接中说了这么多。我还找不到他的联系方式,但如果有机会,我打算和他讨论一下。
我目前解决这个问题的计划是创建一个具有 CompositeCollection 和FreezableCollection<T>
. 我不知道它是否会起作用,但我正在考虑这样的事情:
如果有人有更好的选择,我想听听!
c# - 解决 CompositeCollection 中缺少分组的问题
当我尝试将 GroupDescriptor 添加到我的 CompositeCollection 时,我收到一个异常通知我 CompositeCollection 不支持分组。
我想知道是否有人找到了解决此限制的好方法。我有两个集合,我将它们“压缩”在一起并尝试分组。如果有任何帮助,我对集合之间的分组不感兴趣,只是在集合中它们本身。
datagrid - CompositeCollection 上的 DataGrid 崩溃编辑
我有一个数据网格。它的 ItemsSource 通过 ViewModel 绑定到 ModelView 的 CompositeCollection。CompositeCollection 由 2 个 ObservableCollection 组成。
网格上的显示很好。我可以看到收藏。但是,当我尝试编辑其中一行时,我遇到了崩溃 (NotSupportedException):“此视图不允许使用‘EditItem’”
如何使行可编辑?我需要能够编辑表示网格中每一行的模型视图。
这是我用来绑定到 itemssource 的 CompositeCollection 属性代码: 这不是确切的代码,因为我不允许发布确切的代码,但它与我如何制作集合的逻辑相同
公共 CompositeCollection ModelViewsCollection { get { CollectionContainer modelViewContainer;
modelViewContainer= 新的 CollectionContainer(); modelViewContainer.Collection= this.ModelViewCollection2; modelViewCollection .Add(modelViewContainer);
wpf - 如何处理具有 CollectionView 功能的 CompositeCollection?
当 CompositeCollection 的当前位置发生变化时,有没有办法得到通知?
我需要由 CollectionView 监控 CompositeCollection,欢迎提出任何想法。
wpf - 关于如何对 CompositeCollection 进行排序的任何想法?
我有一个 CompositeCollection,它由两种类型的 ObservableCollections 组成:公司和联系人。Contact 有一个属性 FullName,而 Company 有一个属性 Name。
我想应用排序,以便集合按类型混合但按名称排序,例如:
Itzhak Perlman
John Doe
Microsoft
Sarah Moore
StackOverflow
Walter Richardson
请注意,我将 ItemsControl 绑定到 CollectionViewSource,它的 Source 设置为 CompositeCollection,它的视图变成了 CompositeCollectionView,它是一个内部类型,如果我将它的类型显式设置为 ListCollectionView,它只包含 CollectionContainers 作为它的项目。
所需的解决方案是在 CompositeCollection 上启用排序、过滤和分组的解决方法,我不想覆盖和创建自己的 CompositeCollection,我只是不知道如何覆盖它并在 xaml 中启用它的功能。
wpf - CompositeCollection 会破坏 ComboBox AutoComplete-Feature?
推
大家好!
我正在使用带有IsTextSearchEnabled="True"
(自动完成)的 WPF ComboBox,并希望将其 ItemsSource-Property 绑定到 CompositeCollection。不幸的是,Combobox 似乎无法识别 CompositeCollection 中 CollectionContainer 提供的项目。它们会显示,但不会被 AutoComplete 选中。
请尝试示例,输入“def”。如果“def”没有被选中,你已经重现了我面临的问题。有没有什么解决方案,我监督过的东西,或者在拥有一些合并收集功能的同时解决问题的实用方法?
谢谢!- 达特拉克斯
.net - 遍历 CompositeCollection 的项目
考虑代码:
虽然列表在 GUI 上显示正确的数据
我需要这些数据(不参考 ListBox)但我没有得到它
wpf - 将集合依赖属性数据绑定到用户控件中的菜单
我有一个带有自己上下文菜单的用户控件,但是我需要向该菜单添加其他项目。
我采用的方法是拥有一个名为 ContextMenuItems 的依赖属性:
然后我使用 CompositeCollection 将控件中的静态菜单项与主机提供的列表结合起来:
当我绑定到该资源时,我看到的是:
- 测试
- (收藏)
第二个菜单项绑定到集合以证明我可以访问它。我有一个已添加到菜单项的测试转换器,它在转换器方法中中断,但是当我将转换器添加到 CollectionContainer 时,它不会被调用。
最后,我在输出窗口中收到以下错误:
System.Windows.Data 错误:4:找不到与引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.UserControl',AncestorLevel='1''的绑定源。绑定表达式:路径=上下文菜单项;数据项=空;目标元素是'CollectionContainer'(HashCode=41005040);目标属性是“集合”(类型“IEnumerable”)
wpf - 如何在 WPF 和 MVVM 中使用 CompositeCollection
我有一个使用 MVVM 的 WPF 应用程序。我在表单上有一个 DataGrid,DataGrid 有一列带有一个包含 ObservableCollection 的 ComboBox。
我想在组合框的顶部添加一个“请从列表中选择”。我尝试使用 CompositeCollection 来执行此操作,但无法将 ObservableCollection 列表绑定到组合框,但“请选择”确实绑定了。
在这种情况下,如何在 ComboBox 顶部添加“请选择”?有没有人有这方面的例子?
这是我尝试过的: XAML:
wpf - WPF在CompositeCollection中绑定MenuItem不起作用
我在将命令绑定到复合集合中的菜单项时遇到问题。MenuItem
是ContextMenu
其中定义的一部分UserControl.Resources
。
问题是新标签的绑定不起作用。当我将 MenuItem 放在复合集合之外时,它将起作用。有任何想法吗?