BindingBase.ProvideValue(IServiceProvider) Metoda

Definicja

Zwraca obiekt, który należy ustawić we właściwości, w której jest stosowane to powiązanie i rozszerzenie.

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

Parametry

serviceProvider
IServiceProvider

Obiekt, który może świadczyć usługi dla rozszerzenia znaczników. Może to być null.

Zwraca

Object

Wartość do ustawienia we właściwości docelowej powiązania.

Uwagi

Ta implementacja zapewnia podstawową obsługę składni dla powiązania za pomocą języka XAML (Extensible Application Markup Language) dla wszystkich dostarczanych praktycznych klas pochodnych (Binding, PriorityBinding, i MultiBinding).

Oczekuje się, że implementacja BindingBase klasy tej metody zwróci obiekt wyrażenia, który jest wynikiem powiązania. Powiązanie właściwości działa przez określanie wartości docelowej dla danej DependencyProperty DependencyObjectwartości . Te dwie informacje są przesyłane przez zapytanie o implementację IProvideValueTarget w serviceProviderobiekcie , który czytnik XAML WPF udostępnia podczas analizowania powiązania. Ta implementacja klasy bazowej jest odpowiedzialna za sprawdzanie poprawności DependencyProperty i DependencyObject. Jeśli zostaną znalezione, rzeczywista implementacja zwracania wyrażenia powiązania przypada na różne klasy pochodne, jak zaimplementowano przez wywołanie wewnętrznej metody abstrakcyjnej klasy bazowej. W przeciwnym razie rozszerzenie zwraca sam obiekt powiązania. Zwracanie samego powiązania powoduje wystąpienie błędu niezgodności typu, ale nie powinno to nastąpić w normalnych okolicznościach.

Ważne

Ponieważ składnia powiązania za pośrednictwem języka XAML zaimplementowana w tej metodzie opiera się na implementowaniu wewnętrznego zastąpienia, a ponieważ BindingBase.ProvideValue sama jest zapieczętowana, niestandardowa klasa powiązania pochodząca z BindingBase klasy nie będzie działać poprawnie jako rozszerzenie znaczników XAML.

Dotyczy