WPF,请问Binding标记扩展
书上说:所有的标记扩展类都继承自MarkupExtension类,该类提供了一个ProvideValue方法,此方法会提供在计算标记扩展之后返回的对象。在引用一个扩展类时,可以省略后面的Extension单词。
那说明,Binding标记扩展是由BindingExpression类定义的吧
那下面这句:
<TextBlock FontSize="{Binding ElementName=slider1, Path=Value}" />
到底是创建了一个Binding类的实例还是一个bindingexpression类的实例呢?而bindingexpression类是没有
ElementName和Path属性的
------解决方案--------------------它们之间属于一种继承关系,也就是说,Binding子类可能扩展了ElementName和Path这些属性。基类没有,但是子类可以新增这些属性。
------解决方案--------------------那说明,Binding标记扩展是由BindingExpression类定义的吧
为什么这么说?
你看看MSDN不就知道了。http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.data.binding.aspx
继承层次结构
System.Object
System.Windows.Markup.MarkupExtension
System.Windows.Data.BindingBase
System.Windows.Data.Binding
------解决方案--------------------Binding -> BindingBase -> MarkupExtension
BindingExpression -> BindingExpressionBase -> Expression
这2个好像没啥关系吧。
------解决方案--------------------
你发帖是把BindingExpression的msdn链接都贴上去了,可以去看看。
扩展是extension
expression是表达式
英语呀……