问题标签 [collectioneditor]

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

.net - 运行时的集合编辑器

我正在开发一个使用属性网格编辑名称/值对的应用程序。我的类文件中的一些属性是 ListDictionary 集合。是否有可以在属性声明中应用的 Editor 属性,使 Collection Editor 在运行时工作?如果没有,是否可以从 ComponentModel.Design.CollectionEditor 继承以在运行时使用?我需要能够添加、删除和编辑集合值。非常感谢,特里

0 投票
2 回答
1451 浏览

c# - PropertyGrid - Ilist Collection Remove 未按预期触发

我有一个实现 IList 的集合对象。在集合中,我使用了一个列表来收集项目。在 PropertyGrid 内部(在运行时),它正确绑定并打开集合编辑器。我可以编辑,我可以正确添加项目,当它们在集合类中使用时我可以捕获这些方法。

但是,如果您尝试删除任何项目,它们会从集合中删除,但我的集合中似乎没有使用 IList.Remove 或 IList.RemoveAt。删除的项目也意味着从数据库中删除,这是我在 Remove 方法中实现的行为。

我还从 remove 方法中删除了所有逻辑,并将它们留给 throw new NotImplmented(),而这些根本不会被触发!

我也有一个由自己的 CollectionEditor 实现,但仍然看不到挂钩到我的对象的方法。

那么,我应该在哪里寻找相关的方法呢?我是否也需要更改我的物品的行为?

0 投票
1 回答
316 浏览

user-controls - 在 CollectionEditor 中删除现有项目时,不会更新 UserControl 预览

我在使用默认 CollectionEditor 时遇到了这个问题。

当我将项目添加到集合编辑器时,我将项目显示为用户控件上的矩形。但是,当我删除已经存在的项目时,预览不会更新,直到我单击“确定”或“添加”按钮。

我在下面提供了相同的代码。

制作步骤:

  1. 将控件添加到 from。
  2. 通过打开 CollectionEditor 并添加(比如 3. 项目。(你看到项目被添加到控件)来编辑控件的 Collection 属性。预览得到很好的更新。
  3. 现在单击确定按钮。
  4. 重新打开 CollectionEditor 并尝试删除现有项目。我希望这些项目在预览中被删除。但删除的项目仍保留在控件上,直到我单击“添加”按钮或“确定”按钮。:(

这是 CollectionEditor 类中的错误吗?

源代码:

TestCollectionClass.cs

测试组件.cs

CollectionEditorTestUserControl.cs

0 投票
2 回答
3102 浏览

c# - 如何以编程方式将项目添加到 CollectionEditor 的列表/列表框/集合?[修改的]

我有自定义集合编辑器,我想以编程方式将项目添加到它的列表(集合)中,以便它们可以在列表框中可见。我怎么能这样做?我知道 CollectionEditor 的 AddItems 方法,但它将集合对象作为参数,但我无法找到获取 CollectionEditor 的内部列表对象的方法...:/

[更新] 呃.. 正确的方法名称是 'SetItems' [/update]

[更新 2] 我正在尝试做的源代码...

[/更新 2]

0 投票
1 回答
1724 浏览

.net - 控件集合的设计时编辑器支持

我想向组件添加一个表示控件集合的属性,并有一个集合编辑器,我可以使用它轻松选择属于该集合的控件。VS使用以下代码自动完成了我想要的几乎所有操作:

我得到了默认的CollectionEditor,可以添加和删除控件,并且集合是序列化的。

问题是我不想添加控件,我想从表单上的其他可用控件中选择多个控件。有什么简单/标准的方法可以做到这一点,还是我必须编写自己的集合编辑器并运行控件集合?

尽管有很多关于集合编辑器 (UITypeEditors) 和其他设计时主题的材料,但我无法找到任何链接来演示这种确切的行为,因此感谢您提供任何帮助。

0 投票
1 回答
684 浏览

c# - 带有 GenericItems 的 PropertyGrid GenericList

有没有办法在一个对象的 PropertyGrid(和他的 CollectionEditor)中显示和编辑值,该对象派生自一个抽象的泛型类?我没有只显示类似这样的属性:“IFilter´1”或“BaseFilter'1”其中 IFilter 是一个接口,而 BaseFilter 是一个抽象类。

此列表包含的所有对象:

有一个抽象类,实现了 IFilter:

以及 FilterBase 的一些特殊实现

当我将这样的“SimpleBool”类添加到上面定义的列表中时,PropertyGrid 不会显示任何属性。但是当我使用非泛型类型定义泛型列表时,它显示全部正确。

有解决方案来完成这项工作吗?我尝试添加一些 TypeConverter 和一个自己的 CollectionEditor。显然没有运气=(

0 投票
1 回答
2247 浏览

c# - 如何将 PropertyGrid 集合限制为列表

好的,我已经阅读了一些关于使用 PropertyGrid 和集合的问题。但是,我很难理解如何/如果[TypeConverter]对我有用。我读过 MSDN 放出的那段小广告,坦率地说,对于这个可怜的自学成才的程序员来说,这有点欠缺。

所以,这就是我所拥有的。首先是一个集合:

集合中的对象:

我有一个 ListView 控件,其中包含描述 ModuleData 对象和 BatchData 对象的项目。当我从 ListView 中选择一个 BatchData 项时,PropertyGrid 将按预期显示集合编辑器。有没有办法将集合编辑器限制为仅在 ListView 控件中列出的任何 ModuleData 项?理想情况下,我不希望将 BatchData 项(来自 ListView)添加到 BatchData 集合中 - 特别是因为集合不是 BatchData 对象类型的“类型化”。

如果需要任何进一步的代码示例,我将非常乐意编辑其中的一些片段。

为清楚起见,ModuleData 是一个自定义类,它保存在指定程序集中实例化类所需的数据。它包含的只是字段和公共/内部属性。我想做的是使用与属性网格控件组装的集合编辑器将 ModuleData 对象添加到 BatchDataModule集合。符合添加条件的 ModuleData 对象列在 ListView 控件中。

编辑:删除了: List<ModuleData>继承。

更新:如果我要创建自定义集合编辑器,这是否意味着我正在构建自己的自定义表单/对话框?然后基本上为propertygrid提供信息以通过UITypeEditor的属性和继承来显示我的自定义集合对话框?

0 投票
2 回答
1918 浏览

c# - 在属性网格、.net、winforms 中编辑自定义只读集合时出现问题

我有一个自定义集合,可以说 COL,它源自 ObjectModel.Collection。

我有自己的集合编辑器,当 COL 类型的属性启用读写时,它可以正常工作。但是,如果我将属性更改为只读,则打开编辑器按钮将停止显示在属性网格中。

作为测试,我用 CollectionEditor 覆盖了我的自定义编辑器,效果很好。

所以,我的问题是,什么检查是属性网格,CollectionEditor 通过但我的集合编辑器失败?

UITypeEditor 中没有太多要覆盖的内容,所以我担心 CollectionEditor 会进行一些硬编码。

干杯。

预计到达时间:

我已经回答了下面的问题。

0 投票
1 回答
1320 浏览

c# - 在 PropertyGrid 中修改 CollectionEditor

我目前有一个包含 Call 的列表,它是基类。如果我想将 Call 的派生类添加到列表中,我知道要执行以下操作。

我的问题是无论如何移动标记包含列表可以包含的所有可能类型的 Type[] 的位置?我想将以下内容添加到我的 CustomCollectionEditor 类中,但这不起作用。

如果我能以某种方式在 DisplayList 类中标记 CustomCollectionEditor 需要注意的类,那将是理想的。

0 投票
1 回答
982 浏览

c# - 关于 .NET CollectionEditor 类型的问题

谁能用简单的英文告诉我一个CollectionEditor的内部工作机制?

我已经实现了每一个虚拟功能,并进入了它们中的每一个。仍然不知道它的预期算法。我在网上搜索了很多关于 CollectionEditor 类型的compaint,甚至还有bug

我有点认为 CollectionEditor 是一团糟。