模板化控件

模板化控件

1.模板是页面语法中的一部分,可以包括带有静态HTML以及其它文字文本的服务器控件.
2.模板控件提供了重要的自定义能力,通常被称作无外观控件(lookless controls),因为它并没能生成预先确定的用户界面.
3.样式可以使我们定制生成UI的可视化外观,模板可以使我们自定义所生成的UI的内容.
4.页面解析器解析模板标签(<%# Container.DataItem%> )内的文本,并生成一个解析树来表示模板的内容,就像解析整个页面时一样.
5.解析器用解析树(由System.Web.UI.ControlBuilder对象组成)来创建ITemplate类型的一个实例.
6.该ITemplate实例可以在给定的容器控件中创建表示模板内容的控件层次.
ITemplate接口的定义:
public interface ITemplate
{
    void InstantiateIn(Control container);
}.

InstantiateIn方法的描述:
A.InstantiatenIn方法实例化该模板的元素,作为该模板容器的子控件.
B.当由类实现时,定义子控件和模板所属的Control对象.然后在内联模板中定义这些子控件.
C.Iteratively populates a provided control with a subhierarchy of child controls represented by the template.

7.解析器把该ITemplate实例赋值给控件相应的ITmplate属性.当构造控件层次时,控件可以多次调用模板的InstantiateIn方法,每次调用时模板创建由模板的内容表示的控件树的一个副本.
8.模板通常在数据绑定控件的环境中用到.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模板控件可以通过支持Command来实现与应用程序的交互。Command是一种对象,用于表示操作并将其绑定到控件。在模板控件中,可以使用Command来响应用户的交互事件,例如按钮的单击事件。 在UWP中,可以使用ICommand接口来创建Command。ICommand定义了两个方法:CanExecute和Execute。CanExecute方法用于检查Command是否可以执行,而Execute方法用于执行Command。 具体实现时,可以为模板控件添加一个Command属性,然后在控件模板中绑定该属性。例如,可以在Button控件模板中添加一个Command属性,并将其绑定到Button的Command属性。当用户单击按钮时,控件会调用Command的Execute方法,执行相应的操作。 以下是一个简单的示例,演示如何在模板控件中使用Command: ``` public class MyControl : Control { public MyControl() { this.DefaultStyleKey = typeof(MyControl); } public ICommand MyCommand { get { return (ICommand)GetValue(MyCommandProperty); } set { SetValue(MyCommandProperty, value); } } public static readonly DependencyProperty MyCommandProperty = DependencyProperty.Register("MyCommand", typeof(ICommand), typeof(MyControl), new PropertyMetadata(null)); } <Style TargetType="local:MyControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:MyControl"> <Button Content="Click Me" Command="{TemplateBinding MyCommand}" /> </ControlTemplate> </Setter.Value> </Setter> </Style> ``` 在这个例子中,MyControl添加了一个MyCommand属性,并在控件模板中绑定到一个Button控件的Command属性。当用户单击按钮时,控件会调用MyCommand的Execute方法。 使用模板控件的好处是可以将控件的外观和交互逻辑分离。这样可以使代码更易于维护和扩展。通过支持Command,模板控件可以更好地与应用程序的交互进行整合,实现更复杂的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值