用户/ Web控件设计时支持的C#枚举列表/集合?

And*_*hns 5 c# enums controls properties list

从星期四开始,我一直在用这个小问题敲打砖墙,而且我还没有比那时候更接近答案.

我有一个用户控件,它有如下属性:

/// <summary>
/// Gets or sets the media types.
/// </summary>
/// <value>The media types.</value>
public List<MediaType> MediaTypesFilter { get; set; }
Run Code Online (Sandbox Code Playgroud)

MediaType是一个枚举,包含None,PDF,Image等.

我想要的是能够在设计时设置用户控件的mediatypes(使用intellisense),例如:

<CMS:MediaPicker ID="MediaPicker runat="server" MediaTypesFilter="PDF, Image">
Run Code Online (Sandbox Code Playgroud)

或者更可能导致这样的事情:

<CMS:MediaPicker ID="MediaPicker" runat="server">
    <MediaTypesFilter>
        <MediaType>PDF</MediaType>
        <MediaType>Image</MediaType>
    </MediaTypesFilter>
</CMS:MediaPicker>
Run Code Online (Sandbox Code Playgroud)

我想我需要在属性上使用属性,比如DesignerSerializationVisbility等,但我无法弄明白.我读过有关CollectionEditors的内容,我读过的内容表明默认的CollectionEditor应该能够处理这个问题,所以我认为我不需要创建自定义的CollectionEditor.到目前为止,我最接近的是内部属性,无法设置哪种媒体类型.我似乎无法找到枚举列表的任何示例作为在设计时使用的属性.有人可以指出我正确的方向或给我一些示例代码做我正在尝试做的事情?

现在,我最终得到了一个逗号分隔的字符串,并且在我需要它时会以编程方式将其拆分为一个列表,但这意味着在设计时没有智能感知,这很糟糕.

KMå*_*Mån 2

尝试添加可浏览属性。请参阅示例

[Browseable(true)]
Run Code Online (Sandbox Code Playgroud)

别忘了添加using System.ComponentModel;

另请参阅使用自定义 HTML 属性扩展 ASP.NET Web 控件