Как создать элемент управления с коллекцией - PullRequest
1 голос
/ 16 мая 2011

ОК, позвольте мне быть более конкретным. Я знаю, как создать элемент управления со свойством коллекции, но я никогда не делал написанного элемента, с которым связана разметка.

То, что я хочу знать, так это заданный элемент управления ...

public class MyControl 
{
    public List<MySubItems> Items {get; set;}
}

Что мне нужно сделать, чтобы создать разметку, как это ...

<MyStuff:MyControl runat="server" ID="MyControl1">
  <Items>
    <MySubItem ... />
    <MySubItem ... />
  </Items>
</MyStuff:MyControl>

Извиняюсь, если это кажется немного странным вопросом, но я никогда не делал этого раньше.

- Стюарт

Ответы [ 2 ]

3 голосов
/ 16 мая 2011

Вам необходимо применить DesignerSerializationVisibilityAttribute вместе с PersistenceModeAttribute к вашей собственности. Предполагая, что это элемент управления ASP.NET.

Вот как это будет выглядеть -

public class MyControl:WebControl
{
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
    PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    public List<MySubItems> Items {get; set;}
}

Подробный пример см. MSDN: Пример свойства коллекции веб-элементов управления .

1 голос
/ 16 мая 2011

Возможно, вы ищете шаблонные элементы управления http://msdn.microsoft.com/en-us/library/aa478964.aspx

...