BindingBase.ProvideValue(IServiceProvider) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个应在应用了此绑定和扩展的属性上设置的对象。
public:
override System::Object ^ ProvideValue(IServiceProvider ^ serviceProvider);
public override sealed object ProvideValue (IServiceProvider serviceProvider);
override this.ProvideValue : IServiceProvider -> obj
Public Overrides NotOverridable Function ProvideValue (serviceProvider As IServiceProvider) As Object
参数
- serviceProvider
- IServiceProvider
可为标记扩展提供服务的对象。 可为 null
。
返回
要在绑定目标属性上设置的值。
注解
此实现通过 Extensible Application Markup Language (XAML) 为所有提供的实际派生类( (Binding、 PriorityBinding和 MultiBinding) )提供绑定的基本语法支持。
BindingBase此方法的类实现应返回一个表达式对象,该对象是绑定的结果。 绑定属性的工作原理是针对给定 DependencyProperty 上的给定 DependencyObject。 这两条信息是通过查询 IProvideValueTarget 上的 serviceProvider
实现来传输的,WPF XAML 读取器在分析绑定期间提供该实现。 此基类实现负责检查有效的 DependencyProperty 和 DependencyObject。 如果找到这些,则返回绑定表达式的实际实现将落入各种派生类,正如通过让基类调用内部抽象方法实现的那样。 否则,扩展将返回绑定对象本身。 返回绑定本身会导致类型不匹配错误,但在正常情况下不应发生这种情况。
重要
由于在此方法中实现的通过 XAML 绑定的语法依赖于实现内部重写,并且由于 BindingBase.ProvideValue 自身是密封的,因此派生自 BindingBase 的自定义绑定类将无法作为 XAML 标记扩展正常运行。