BindingBase.ProvideValue(IServiceProvider) Metoda

Definice

Vrátí objekt, který by měl být nastaven na vlastnost, kde se tato vazba a rozšíření použijí.

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

Objekt, který může poskytovat služby pro rozšíření značek. Může to být null.

Návraty

Object

Hodnota nastavená na cílovou vlastnost vazby.

Poznámky

Tato implementace poskytuje základní podporu syntaxe pro vazbu prostřednictvím jazyka XAML (Extensible Application Markup Language) pro všechny poskytované praktické odvozené třídy (Binding, PriorityBindinga MultiBinding).

Očekává se BindingBase , že implementace třídy této metody vrátí objekt výrazu, který je výsledkem vazby. Vazba vlastnosti funguje tak, že cílí na danou DependencyProperty DependencyObjectvlastnost . Tyto dvě informace jsou přenášeny dotazováním na IProvideValueTarget implementaci na serviceProvider, kterou čtečka WPF XAML zpřístupní během analýzy vazby. Tato implementace základní třídy je zodpovědná za kontrolu platné DependencyProperty a DependencyObject. Pokud jsou nalezeny, skutečná implementace vrácení vazbového výrazu spadá do různých odvozených tříd, jak je implementováno tím, že základní třída volá interní abstraktní metodu. V opačném případě rozšíření vrátí samotný objekt vazby. Vrácení samotné vazby vede k chybě neshody typů, ale za normálních okolností by k tomu nemělo dojít.

Důležité

Vzhledem k tomu, že syntaxe vazby prostřednictvím XAML implementovaná v této metodě spoléhá na implementaci interního přepsání a protože BindingBase.ProvideValue je zapečetěná, vlastní třída vazby, která pochází z BindingBase , nebude fungovat správně jako rozšíření značek XAML.

Platí pro