自从周四以来,我一直在为这个小问题而烦恼,但到现在为止,我还没有比那时更接近答案。
我有一个用户控件,其中有一个属性,如下所示:
/// <summary>
/// Gets or sets the media types.
/// </summary>
/// <value>The media types.</value>
public List<MediaType> MediaTypesFilter { get; set; }
MediaType是一个枚举类型,包含None、PDF、Image等。
我想要的是能够在设计时(使用智能感知)设置用户控件的媒体类型,例如:
<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。到目前为止,我最接近的是一个内部属性,没有设置任何媒体类型的能力。我似乎找不到任何枚举列表作为属性在设计时间使用的示例。有人可以指点我方向或展示一些做我试图做的事情的示例代码吗?
目前,我得到了一个逗号分隔的字符串,只有当我需要时才会在程序中将其拆分成列表,但这意味着在设计时没有智能提示,这很糟糕。