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