Как программно создать шаблон по умолчанию для шаблонного элемента управления? - PullRequest
0 голосов
/ 28 мая 2010

Я создаю настраиваемый шаблонный составной элемент управления. Если в разметке не указан «ItemTemplate», как мне создать шаблон по умолчанию программно?

1 Ответ

0 голосов
/ 28 мая 2010

Правильно, возможно, мне следовало немного поиграть с этим, прежде чем публиковать свой вопрос. Я создал следующий класс:

internal class ItemTemplateDefault : ITemplate
{
    public void InstantiateIn(Control container)
    {
        Literal lit = new Literal();

        CountrySelectorItemContainer cont = container as CountrySelectorItemContainer;

        lit.Text = string.Format("<li>\n\t<a href=\"{0}\" title=\"{1}\">{1}</a>\n</li>", cont.ItemURL, cont.ItemText);

        container.Controls.Add(lit);
    }
}

Поэтому, если ItemTemplate имеет значение null, я создаю новый ItemTemplateDefault и назначаю его как ItemTemplate. Смотри ниже.

if (this.ItemTemplate == null)
    this.ItemTemplate = new ItemTemplateDefault();

CountrySelectorItemContainer container = new CountrySelectorItemContainer();
container.ItemText = "My Country";
container.ItemURL = "http://myurl.com";

this.ItemTemplate.InstantiateIn(container);

Controls.Add(container);

Это достойный способ сделать это? Я действительно просто придумал то, что казалось естественным, поэтому буду признателен, если у вас есть какие-либо отзывы.

Ура, Джеймс

...