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 标记扩展正常运行。