C # Enum List / Коллекция на User / Web Control поддержка времени разработки? - PullRequest
5 голосов
/ 22 марта 2010

Я бился головой об кирпичную стену из-за этой маленькой проблемы с четверга, и я до сих пор не ближе к ответу, чем тогда.

У меня есть пользовательский элемент управления, у которого есть такое свойство:

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

MediaType - это перечисление, содержащее None, PDF, изображение и т. Д.

Что мне хотелось бы, так это иметь возможность устанавливать медиатипы пользовательского элемента управления во время разработки (с помощью 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. Самым близким, что я получил, было внутреннее свойство, в котором не было возможности устанавливать, какие типы носителей. Я не могу найти примеры списков Enum как свойств, используемых во время разработки. Может ли кто-нибудь указать мне правильное направление или показать пример кода, который делает то, что я пытаюсь сделать?

На данный момент я получил строку, разделенную запятыми, и просто разделю ее программно на список, когда мне это понадобится, но это означает отсутствие intellisense во время разработки, что отстой.

1 Ответ

2 голосов
/ 22 марта 2010

Попробуйте добавить атрибут Просматриваемый . См. пример .

[Browseable(true)]

Не забудьте добавить using System.ComponentModel;

Также см. Расширение веб-элементов управления ASP.NET с пользовательскими атрибутами HTML .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...