BindingBase.ProvideValue(IServiceProvider) Metodo

Definizione

Restituisce un oggetto che deve essere impostato sulla proprietà in cui viene applicata l'associazione e l'estensione.

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

Parametri

serviceProvider
IServiceProvider

Oggetto che può fornire servizi per l'estensione di markup. Può essere null.

Valori restituiti

Valore da impostare sulla proprietà di destinazione dell'associazione.

Commenti

Questa implementazione fornisce il supporto della sintassi di base per l'associazione tramite XAML (Extensible Application Markup Language) per tutte le classi derivate pratiche fornite (Binding, PriorityBindinge MultiBinding).

L'implementazione BindingBase della classe di questo metodo dovrebbe restituire un oggetto espressione che è il risultato di un'associazione. L'associazione di una proprietà funziona specificando come destinazione un dato DependencyProperty in un determinato DependencyObjectoggetto . Queste due informazioni vengono trasmesse eseguendo query su un'implementazione di IProvideValueTarget nell'serviceProvider, che il lettore XAML macchine virtuali Windows rende disponibile durante l'analisi di un'associazione. Questa implementazione della classe di base è responsabile del controllo di un oggetto valido DependencyProperty e DependencyObject. Se vengono trovati, l'implementazione effettiva della restituzione di un'espressione di associazione rientra in varie classi derivate, come implementato dalla classe base che chiama un metodo astratto interno. In caso contrario, l'estensione restituisce l'oggetto binding stesso. La restituzione dell'associazione stessa comporta un errore di mancata corrispondenza del tipo, ma ciò non dovrebbe verificarsi in circostanze normali.

Importante

Poiché la sintassi per l'associazione tramite XAML implementata in questo metodo si basa sull'implementazione di un override interno e, poiché BindingBase.ProvideValue se stessa è sealed, una classe di associazione personalizzata che deriva da BindingBase non funzionerà correttamente come estensione di markup XAML.

Si applica a