【转】【WPF】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。
原文地址:http://www.cnblogs.com/KeithWang/archive/2012/03/29/2423005.html
【转】【WPF】TemplateBinding和Binding的区别的更多相关文章
- TemplateBinding和Binding的区别
		定义 TemplateBinding是为了某个特定场景优化出来的数据绑定版本--需要把ControlTemplate里面的某个Property绑定到应用该ControlTemplate的控件的对应Pr ... 
- TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇
		在上一次的文章WPF OnApplyTemplate 不执行 或者执行滞后的疑惑谈到怎么正确的开发自定义控件,我们控件的样式中,属性的绑定一般都是用TemplateBinding来完成,如下一个基本的 ... 
- 【转】WPF中的Binding技巧(二)
		WPF中的Binding技巧(二) 接上篇, 我们来看一看Elementname,Source,RelativeSource 三种绑定的方式 1.ElementName顾名思义就是根据Ui元素 ... 
- TemplateBinding和Binding
		TemplateBinding是Binding的一个轻量级版本,它失去了成熟版本Binding的很多功能,比如继承内容引用(inheritence context referencing),Relat ... 
- WPF中Auto与*的区别
		原文:WPF中Auto与*的区别 Auto 表示自动适应显示内容的宽度, 如自动适应文本的宽度,文本有多长,控件就显示多长. * 则表示按比例来分配宽度. <ColumnDefinition W ... 
- WPF : ControlTemplate和DataTemplate的区别
		ControlTemplate用于描述控件本身. 使用TemplateBinding来绑定控件自身的属性, 比如{TemplateBinding Background}DataTemplate用于描述 ... 
- [XAML]类似WPF绑定的Binding的读取方法
		在WPF的XAML里,依赖属性可以使用基于BindingBase之类的MarkupExtensin 读取XAML时,会自动的把该BindingBase转换为BindingExpressionBase ... 
- [WPF系列]-使用Binding来同步不同控件的Dependency property
		简介 项目中经常会用到,同步两个控件的值,本文就简单列举两种方式来同步不同控件的两个Dependency Property. 示例 效果图: 只使用C#代码: //获取slider1的ValueDep ... 
- (WPF) 再议binding:点击User Control时,User Control变换颜色或做其他的处理。
		Binding 是前台UI(显示层)和后台代码(数据层)的桥梁.理论上当后台的数据变动时,显示的数据或样式应该随之而变.这些是动态的. 对于Binding的设置可以在前台Xaml,也可以在后台Code ... 
随机推荐
- iOS— UIScrollView和 UIPageControl之间的那些事
			本代码主要实现在固定的位置滑动图片可以切换. 目录图如下: ViewController.h #import <UIKit/UIKit.h> // 通过宏定义定义宽和高 #define W ... 
- IOS开发--常用的基本GDB命令
			gdb不是万能的,可是没有gdb却是万万不能的.这里给大家简单介绍下iOS开发中最基本的gdb命令. po po是print-object的简写,可用来打印所有NSObject对象.使用举例如下: ( ... 
- ios开发随笔第一篇-button,label按钮的一些属性的使用
			我用的是纯代码方式,喜欢用storyboard开发的其实也很爽了; 首先谈谈button,ios中新建button这个对象一般接触的都明白,UIButton *button名=[ UIButton a ... 
- 记OC迁移至swift中笔记20tips
			写久了OC后来写swift,总感觉写着是swift的皮毛,但是实际上是OC的核心,这里整理了OC迁移至swift中的一些小细节. 1 在当前类中,实例方法调用属性以及方法都可以将self省略掉,而且是 ... 
- 小波说雨燕 第三季 构建 swift UI 之 度假清单 学习笔记
			最终的效果: <1>第一个场景: 1.本地化 界面简体中文化 Supporting Files - info.plist Localization native development r ... 
- jetbrains DataGrip 导出Excel
			之前一直不知道如何通过DataGrip 导出Excel,导致每次都是用Navcat来做导出,今天研究了下,原来用TSV格式就能复制到Excel表格,具体步骤如下: ------------------ ... 
- oracle-表空间满了
			一.查看 "sum MB", (a.bytes "used MB",b.bytes "free MB", ,) "used%&qu ... 
- CBarChart柱形图类
			在用VC做有关图表的时候,感觉不是那么方便,在codeproject找到一个柱形图的实用类,原文地址为:http://www.codeproject.com/KB/miscctrl/CBarChart ... 
- PHP正则中的捕获组与非捕获组
			今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可 ... 
- jquery-qrcode生成二维码
			一.jquery-qrcode jquery-qrcode是一个为浏览器生成二维码的jquery插件.我们很容易将它集成到我们的应用.该插件也可以独立使用,也比较小.它是直接在客户端生成二维码生成.所 ... 
