繁体   English   中英

您如何以编程方式为模板控件创建默认模板?

[英]How do you programmatically create a default template for a templated control?

我正在创建一个自定义模板化复合控件。 如果在标记中未指定“ ItemTemplate”,如何以编程方式创建默认模板?

是的,也许我应该在发布我的问题之前先进行一些尝试。 我创建了以下课程:

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中是空所以,当我实例化一个新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);

这是一种体面的方式吗? 我真的只是考虑了看起来很自然的事情,因此,如果您有任何反馈意见,我将不胜感激。

干杯,詹姆斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM