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 je použita tato vazba a rozšíření.
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 být null.
Návraty
Hodnota, která se má nastavit na cílovou vlastnost vazby.
Poznámky
Tato implementace poskytuje základní syntaxi podporu vazby prostřednictvím jazyka XAML (Extensible Application Markup Language) pro všechny poskytnuté 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 vlastnost .DependencyObject Tyto dva údaje jsou přenášeny dotazováním na implementaci IProvideValueTarget na serviceProvider, kterou čtečka XAML WPF (Windows Presentation Foundation) zpřístupní při analýze vazby. Tato implementace základní třídy je zodpovědná za kontrolu platnosti 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 způsobí chybu neshody typů, ale za normálních okolností by k tomu nemělo dojít.
Important
Vzhledem k tomu, že syntaxe pro vazbu prostřednictvím XAML, jak je implementována v této metodě, spoléhá na implementaci interní přepsání a protože BindingBase.ProvideValue je zapečetěna, vlastní třída vazby odvozená z BindingBase nebude fungovat správně jako rozšíření kódu XAML.