1

假设你在 wpf 中创建了一个标准的 UserControl 或 CustomControl,然后声明了一个复杂类型的属性

公共 ComplexPropertyType AProperty { 获取;放; }

复杂类型是具有一堆属性的简单类

public class ComplexPropertyType 
{
    public int IntP { get; set; }

    public String Strp { get; set; }
}

在设计时 AProperty 不可编辑。

如您所见,AProperty 属性不可编辑

我记得 System.ComponentModel 中有一些属性允许我指定使用标准属性编辑器来使该属性可编辑,但我不记得了。

任何人都有一个显然不需要编写自定义属性编辑器的解决方案?毕竟如果我在我的控件中声明一个属性,它是复杂类型 Es 的集合。

公共 ObservableCollection ACollOfProperty { 获取;放; }

设计人员自动使用能够编辑我的复杂类型的 System.ComponentModel.Design.CollectionEditor

在此处输入图像描述

提前致谢。

4

2 回答 2

0

在 wpf 中,您可以使用此http://wpg.codeplex.com/或使用此 winform contro

于 2012-10-22T19:03:33.310 回答
0

我能够自己找到属性,是 TypeConverter。您应该使用 TypeConverterAttribute 在用户控件中声明该属性,指定 ExpandableObjectconverter

    [TypeConverter(typeof(ExpandableObjectConverter))]
    public ComplexPropertyType AProperty { get; set; }

现在您应该在设计器中看到一个不错的 NEW 按钮,允许您在设计时填充值

现在属性是可设计的

按 new 将创建 ComplexPropertyType 的一个实例,因此可以直接从设计器中对其进行编辑。

VS中的复杂类型编辑

阿尔克。

于 2012-10-23T07:30:48.143 回答