问题标签 [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 回答
1930 浏览

.net - 自定义收藏编辑器最高级教程

我们需要了解有关如何自定义标准 .NET 集合编辑器的所有信息,我们该往哪里看?

0 投票
1 回答
50 浏览

.net - 在集合编辑器中更改参数时使控件无效

我们正在寻找一种更优雅的方式来更新控件内容,同时在集合编辑器中编辑它的属性。

据我们所知,唯一的解决方案如下:http ://dotnetfacts.blogspot.com/2008/05/how-to-take-control-over-collection.html

因此声明一个静态事件处理程序:

该解决方案有许多缺点(考虑拥有多个控件),我们想知道是否可以采用不同的方法。

谢谢。

0 投票
1 回答
1904 浏览

vb.net - 自定义 CollectionEditor 永远不会触发属性的“设置”方法

我正在尝试实现一种将集合保存在自定义设置类中的方法。我已经成功创建了设置类(继承了 ApplicationSettingsBase),并且可以使用 PropertyGrid 上的内置编辑器保存属性,但是我对集合的属性网格的自定义实现不会保留我添加的任何值。这是我的代码:

我为 BackgroundColor 属性和 EmailAddresses 属性的 Set 方法设置了一个断点。BackgroundColor 属性按其应有的方式工作 - 它在 Set 语句上中断并正确存储该属性。但是当我关闭自定义 CollectionEditor 对话框时,永远不会调用 EmailAddresses“Set”方法。编辑完成后,如何让我的自定义编辑器实际保存属性?

0 投票
0 回答
717 浏览

c# - 列表设计师序列化

为什么下面的MyIntList属性正确解释了DesignerSerializationVisibility.Content在设计器中产生以下输出:

MyClassIntList one 输出以下内容?

下面是自定义控件类源代码:

这是完整的 Form1.cs 源代码,如果您想测试它:

0 投票
1 回答
2638 浏览

c# - PropertyGrid - 从 IList 派生的属性, 如何添加到 PropertyGrid 以便用户可以添加/编辑/删除项目

让我提供一些关于我如何达到这一点的历史。

我最初在我的类中有一个从 CollectionsBase 派生的属性,并将这个集合映射到 PropertyGrid,用户可以随意从列表中添加/编辑/删除项目。

但是,我无法将 CollectionsBase 与 NHibernate 映射,因此我不得不放弃我的初始实现,而不是从 CollectionsBase 派生,我让类派生自 IList。

现在我可以映射到 NHibernate,但我无法通过 PropertyGrid 编辑集合。

我需要一些帮助才能让两人好好相处。

在我的主类中,我有一个属性定义为:

继承 IList 的我的 Zone Collection 定义如下:

}

现在,当此类从 CollectionsBase 派生时,我的 ICustomTypeDescriptor 和 PropertyDescriptor 工作正常,但现在它只在属性名称中显示类名称 ZoneCollection,而没有“...”按钮来添加/编辑/删除列表中的项目。

现在我做错了什么,因为它是从 IList 继承的,这不起作用?

如果我添加:

在 ZoneCollection 的开头,我将列表中的项目列在可展开的树中,但这不是我想要的。当我从 IList 而不是 CollectionBase 继承时,“...”按钮在哪里打开了一个弹出窗口,使我能够添加/编辑/删除集合中的项目?

0 投票
2 回答
10424 浏览

c# - 如何创建自定义集合编辑器表单以与属性网格一起使用?

我正在尝试将属性网格控件与具有另一个类的列表/集合作为属性之一的类合并。让我们称它们为 A 类,列表将包含 B 类以供参考。

我想合并一个有两个列表框的表单。左侧的列表框将包含我的程序中当前不在右侧列表中的所有 B 类的列表。右侧的列表将包含当前与 A 类关联的所有 B 类。我希望在这两个列表之间移动项目之间的按钮。

这很容易设计,但我不确定如何设置要用作集合编辑器的表单。

谁能指出我正确的方向?

而且,如果有人能指出我完成此任务的方向,我该如何为包含 id 列表的属性设置下拉列表以供选择。

0 投票
1 回答
609 浏览

c# - 收藏编辑的父母

我有这样的财产:

我有一个LayerCollection派生自CollectionEditor的类。而且这个Layers属性在Canvas类。现在,Layer对象需要知道Canvas作为集合的父类的类。那么我怎样才能得到名为 CollectionEditor 的父级LayerCollection呢?

或者如果不可能,我可以在创建CollectionEditor时将参数传递给它吗?通过这种方式,我可以将Canvas对象作为参数传递给Layer它的创建时间。

0 投票
1 回答
788 浏览

c# - CollectionEditor 和“属性 '****' 的代码生成失败”错误消息

我有一个使用属性的用户控件CollectionEditor。我在同一个解决方案中使用另一个项目来测试控件。我的集合编辑器可以正常工作,除了 IDE 在我重新编译组件 dll 后在设计时给出错误。如果我关闭 IDE,而不是重新打开解决方案,它可以正常工作。如果我更改控件的代码并重新编译它,IDE 会给我同样的错误。我意识到如果我重新编译控件,IDE 不会为集合生成代码。但是如果我关闭并重新打开 IDE,它会生成代码。

错误信息:

属性“AProperty”的代码生成失败。错误是:'[A]MyComponent.AProperty 无法转换为 [B]MyComponent.AProperty。A 型源自 'MyComponent; Version=1.0.0.0,Culture=neutral,PublicKeyToken=null',位于位置 '...\AppData\Local\Microsoft\VCSExpress\10.0\ProjectAssemblies\1f88w0l001\MyComponent.dll' 的上下文 'LoadNeither' 中。B 型源自 'MyComponent; Version=1.0.0.0,Culture=neutral,PublicKeyToken=null' 在上下文 'LoadNeither' 的位置'...\AppData\Local\Microsoft\VCSExpress\10.0\ProjectAssemblies\eb4apk_301\MyComponent.dll'。

这是控件中的属性。

以下是CollectionEditor的代码:

0 投票
0 回答
477 浏览

wpf - 将 Visual Studio 集合编辑器与用户创建的自定义类型一起使用

我正在开发一个具有类型属性的自定义控件ObservableCollection<ICollectionItem>
我希望使用此控件的开发人员能够创建自己的实现 ICollectionItem 的类型并在 Visual Studio 2010 的集合编辑器中查看它。
我尝试过装饰带有属性的集合,NewItemTypes(ICollectionItem)但它没有做任何事情(我猜 VS 已经发现新的项目类型应该是 an ICollectionItem
有没有办法实现这种功能?

谢谢。

0 投票
1 回答
1310 浏览

c# - 完全禁用 CollectionEditor

我在 PropertyGrid 中使用自定义动态类对象(此处发布的代码太多)。简而言之,它的作用是允许我在运行时从任意输入创建属性(在本例中为 XML,但这不是重点)。这些属性可以是任何类型,包括另一个自定义类,因此它们可以无限嵌套。

我遇到的问题是 PropertyGrid 将此类视为一个集合,并且在 Value 列中有一个按钮,可让您打开 CollectionEditor。这(除其他外)具有添加和删除按钮,这两个按钮都会从根本上破坏自定义类。与其试图让这两个复杂的系统很好地协同工作,我宁愿干脆完全禁用 CollectionEditor。我有另一个系统,它允许您查看类的子对象(通过将 PropertyGrid.SelectedObject 设置为子对象)并且它工作正常。我希望用户甚至没有看到 CollectionEditor 的选项,因为它似乎与这个系统完全不兼容。

理想情况下,我只想在 Value 列中放置一个按钮,我可以捕获点击事件并自行处理,但这是可选的。我也不关心我是否只为有问题的行或整个 PropertyGrid 禁用 CollectionEditor。无论哪种方式我都没有使用它,所以任何使它无法访问的东西都会很好。