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.

Возвращаемое значение

Object

Значение, задаваемое для целевого свойства привязки.

Комментарии

Эта реализация обеспечивает базовую поддержку синтаксиса привязки через язык разметки расширяемых приложений (XAML) для всех предоставленных практических производных классов (BindingиPriorityBinding).MultiBinding

Реализация BindingBase класса этого метода, как ожидается, вернет объект выражения, который является результатом привязки. Привязка свойства работает путем назначения заданного значенияDependencyProperty.DependencyObject Эти два фрагмента информации передаются путем запроса на реализацию IProvideValueTarget , serviceProviderкоторую средство чтения XAML WPF делает доступным во время синтаксического анализа привязки. Эта реализация базового класса отвечает за проверку допустимости DependencyProperty и DependencyObject. Если они найдены, фактическая реализация возвращения выражения привязки падает на различные производные классы, как реализовано путем вызова базового класса внутреннего абстрактного метода. В противном случае расширение возвращает сам объект привязки. Возврат самой привязки приводит к ошибке несоответствия типов, но это не должно происходить в обычных обстоятельствах.

Важно!

Так как синтаксис привязки через XAML, реализованный в этом методе, основан на реализации внутреннего переопределения, и поскольку BindingBase.ProvideValue сам по себе запечатан, пользовательский класс привязки, производный от BindingBase не будет правильно функционировать в качестве расширения разметки XAML.

Применяется к