Проблема дизайнера с CompositeDataBoundControl

У меня есть пользовательский класс:

SimpleTemplatedControl : CompositeDataBoundControl

    private ITemplate _itemTemplate;
    [PersistenceMode(PersistenceMode.InnerProperty),
     TemplateContainer(typeof(SimpleItem)),
    ]
    public ITemplate ItemTemplate
    {
        get { return _itemTemplate; }// get
        set { _itemTemplate = value; }// set
    }   

    protected override int CreateChildControls(
        System.Collections.IEnumerable dataSource, 
        bool dataBinding)
    {
        //
    }

Когда я помещаю это в веб-форму, я получаю такой смарт-тег, в котором я могу выбрать элемент управления DataSource. Довольно удобно. Однако, если я добавлю этот атрибут в этот класс:

[Designer(typeof(SimpleDesigner))]

Я больше не вижу этого, но вместо этого - смарт-тег для заполнения моего шаблона (также удобно).

Мне бы хотелось, чтобы обе опции были доступны из одного и того же смарт-тега, как и в случае с элементом управления GridView. Как это сделать?

1 ответ

Решение

Какой тип конструктора вы используете? Обычно это ControlDesigner, но для CompositeDataBoundControl вы должны использовать класс DataBoundControlDesigner для наследования вашего конструктора.

Grz, Крис.

Другие вопросы по тегам