zoukankan      html  css  js  c++  java
  • WPF Knowledge Points TemplateBinding和Binding的区别

    定义

    TemplateBinding是为了某个特定场景优化出来的数据绑定版本--需要把ControlTemplate里面的某个Property绑定到应用该ControlTemplate的控件的对应Property上。
    中文表达比较拗口,MSDN的原文“Links the value of a property in a control template to be the value of a property on the templated control.”

    用法

    在属性赋值中直接的用法:
    <object property="{TemplateBinding targetProperty}" .../>

    在模板或样式中用Setter属性的用法:
    <Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>

    区别

    1. Binding比TemplateBinding更加灵活强大,但是开销也更大。TemplateBinding在使用场景有限制,但是效率较高。Template非常类似{Binding RelativeSource={RelativeSource TemplatedParent}}构造的Binding。
    2. TemplateBinding同样允许我们定义Converter和ConverterParameter,在一定程度上加强了TemplateBinding的应用功能和范围.
    3. 最重要的区别:TemplateBinding仅仅支持单向的数据绑定,从应用Template的控件到Template(from templated control to template)。如果我们需要反向或者双向的绑定,唯一的选择就是应用Binding和RelativeSource。

    结论

    讨论了区别,最终我们需要的是一个结论,到底什么时候用哪种Binding?
    如果我们需要一个单向的绑定,使数据从应用template的控件(templated parent)到template,我们就该使用高效而简单的TemplateBinding,其他情况下都使用Binding。

  • 相关阅读:
    HTML相关
    190. 颠倒二进制位【简单】
    22. 括号生成【中等】
    83. 删除排序链表中的重复元素【简单】
    vuejs2.0声明周期
    js增加8小时
    获取DOM的原生事件对象
    hive创建表失败:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaEx
    安装hive过程填坑小结
    CentOS 7配置网络,静态IP
  • 原文地址:https://www.cnblogs.com/KeithWang/p/2423005.html
Copyright © 2011-2022 走看看