从星期四开始,我一直在用这个小问题敲打砖墙,但我仍然没有比当时更接近答案。
我有一个用户控件,它有如下属性:
/// <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。到目前为止,我最接近的是内部属性,无法设置哪种媒体类型。我似乎无法找到枚举列表的任何示例作为在设计时使用的属性。有人能指出我正确的方向,或者给我一些示例代码做我正在尝试做的事情吗?
现在,我最终得到了一个逗号分隔的字符串,并且在我需要它时会以编程方式将其拆分为一个列表,但这意味着在设计时没有智能感知,这很糟糕。
答案 0 :(得分:2)
尝试添加Browseable属性。请参阅example。
[Browseable(true)]
别忘了添加using System.ComponentModel;
另请参阅Extending ASP.NET Web Controls With Custom HTML Attributes。