首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF,请教Binding标记扩展

2013-07-09 
WPF,请问Binding标记扩展书上说:所有的标记扩展类都继承自MarkupExtension类,该类提供了一个ProvideValue

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个好像没啥关系吧。
[解决办法]

引用:
Quote: 引用:

那说明,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标记扩展是由Binding类定义的吧,那BindingExpression类又是做什么用的呢?它是以Expression结尾的,多像标记扩展类 啊


你发帖是把BindingExpression的msdn链接都贴上去了,可以去看看。

扩展是extension
expression是表达式

英语呀……

热点排行