Проблема дизайнера с 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, Крис.