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

时间:2010-03-22 12:11:38

标签: c# list controls properties enums

从星期四开始,我一直在用这个小问题敲打砖墙,但我仍然没有比当时更接近答案。

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

/// <summary>
/// Gets or sets the media types.
/// </summary>
/// <value>The media types.</value>
public List<MediaType> MediaTypesFilter { get; set; }

MediaType是枚举,包含无,PDF,图像等

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

<CMS:MediaPicker ID="MediaPicker runat="server" MediaTypesFilter="PDF, Image">

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

<CMS:MediaPicker ID="MediaPicker" runat="server">
    <MediaTypesFilter>
        <MediaType>PDF</MediaType>
        <MediaType>Image</MediaType>
    </MediaTypesFilter>
</CMS:MediaPicker>

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

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

1 个答案:

答案 0 :(得分:2)

尝试添加Browseable属性。请参阅example

[Browseable(true)]

别忘了添加using System.ComponentModel;

另请参阅Extending ASP.NET Web Controls With Custom HTML Attributes