WPF TemplateBinding与Binding区别
程序员文章站
2022-06-07 13:39:14
...
TemplateBinding与Binding区别
(1)TemplateBinding只是单方向的数据绑定,即数据源到目标的方向
(2)TemplateBinding不会自动转换数据类型,当数据源的类型和目标的类型不一致时,TemplateBinding需要自己写转换器来完成。
下面两个绑定效果是一样的
<TextBlock Text="{TemplateBinding MyText}"/>
<TextBlock Text="{Binding Path=MyText, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"/>
- Binding比TemplateBinding更加灵活强大,但是开销也更大。TemplateBinding在使用场景有限制,但是效率较高。Template非常类似{Binding RelativeSource={RelativeSource TemplatedParent}}构造的Binding。
- TemplateBinding同样允许我们定义Converter和ConverterParameter,在一定程度上加强了TemplateBinding的应用功能和范围.
- 最重要的区别:TemplateBinding仅仅支持单向的数据绑定,从应用Template的控件到Template(from templated control to template)。如果我们需要反向或者双向的绑定,唯一的选择就是应用Binding和RelativeSource。
推荐阅读
-
WPF与WinForm开发有什么区别?
-
WPF之Binding--02 (自定义类实现Binding与没有Path的Binding)
-
WPF TemplateBinding与Binding区别
-
WPF TemplateBinding与Binding区别
-
WPF TemplateBinding与Binding区别及自定义ImageButton
-
WPF与WinForm开发有什么区别?
-
WPF 中Binding的2个属性Source与ElementName的区别
-
TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇
-
WPF的Application.Current.Shutdown()与Environment.Exit(0)区别