BindingBase.ProvideValue(IServiceProvider) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект, который следует задать в свойстве, где применяется эта привязка и расширение.
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.
Возвращаемое значение
Значение, заданное для целевого свойства привязки.
Комментарии
Эта реализация обеспечивает базовую поддержку синтаксиса привязки через язык разметки расширяемых приложений (XAML) для всех предоставленных практических производных классов (BindingиMultiBindingPriorityBinding).
Реализация BindingBase класса этого метода, как ожидается, возвращает объект выражения, который является результатом привязки. Привязка свойства работает путем назначения заданного объекта DependencyPropertyDependencyObject. Эти два фрагмента информации передаются путем запроса на реализацию IProvideValueTarget в serviceProvider, которую средство чтения XAML WPF предоставляется во время синтаксического анализа привязки. Реализация базового класса отвечает за проверку допустимого DependencyProperty и DependencyObject. Если они найдены, фактическая реализация возврата выражения привязки переходит к различным производным классам, как реализовано путем вызова внутреннего абстрактного метода базового класса. В противном случае расширение возвращает сам объект привязки. Возврат самой привязки приводит к ошибке несоответствия типов, но это не должно происходить в обычных обстоятельствах.
Important
Так как синтаксис привязки через XAML, реализованный в этом методе, зависит от реализации внутренней переопределения, и так как BindingBase.ProvideValue сам запечатан, пользовательский класс привязки, производный от BindingBase не будет правильно функционировать как расширение разметки XAML.