【发布时间】:2014-08-07 01:43:47
【问题描述】:
我已经阅读了很多关于如何从页面内向DataGrid添加复选框列的文章,但是在继承控件时我找不到任何关于如何添加列的文章自己。
基本上,我知道我需要创建一个继承自ITemplate 的类。大致如下:
public class SelectionCheckBoxTemplate : ITemplate {
public void InstantiateIn(Control container)
{
var checkbox = new CheckBox(...);
container.Controls.Add(checkbox);
}
}
然后,需要将此模板添加到 TemplateColumn 对象中:
var checkBoxTemplate = new TemplateColumn();
checkBoxTemplate.ItemTemplate = new SelectionCheckBoxTemplate();
但是,这就是我卡住的地方。现在所有文章都显示了将这个TemplateColumn 对象添加到Page 的DataGrid 控件。但是,如果我通过继承 DataGrid 来扩展它呢?我尝试从OnPreRender 中将此 TemplateColumn 添加到 Columns 属性,但没有任何反应。 SelectionCheckBoxTemplate 的 InstantiateIn() 方法永远不会被触发。任何帮助表示赞赏。谢谢!
【问题讨论】: