BindingBase.ProvideValue(IServiceProvider) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.