BindingBase.ProvideValue(IServiceProvider) Methode

Definition

Gibt ein Objekt zurück, das auf die Eigenschaft festgelegt werden soll, auf die diese Bindung und Erweiterung angewendet werden.

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

Parameter

serviceProvider
IServiceProvider

Das Objekt, das Dienste für die Markuperweiterung bereitstellen kann. Kann null sein.

Gibt zurück

Der Wert, auf den die Bindungszieleigenschaft festgelegt werden soll.

Hinweise

Diese Implementierung bietet die Basissyntaxunterstützung für die Bindung über XAML (Extensible Application Markup Language) für alle bereitgestellten praktischen abgeleiteten Klassen (Binding, PriorityBindingund MultiBinding).

Von BindingBase der Klassenimplementierung dieser Methode wird erwartet, dass sie ein Ausdrucksobjekt zurückgibt, das das Ergebnis einer Bindung ist. Das Binden einer Eigenschaft funktioniert, indem eine angegebene DependencyProperty für eine angegebene festgelegt wird DependencyObject. Diese beiden Informationselemente werden übertragen, indem eine IProvideValueTarget -Implementierung auf der serviceProvider-Abfrage ausgeführt wird, die der WPF-XAML-Reader während der Analyse einer Bindung zur Verfügung stellt. Diese Basisklassenimplementierung ist für die Überprüfung auf gültige DependencyProperty und DependencyObjectverantwortlich. Wenn diese gefunden werden, fällt die tatsächliche Implementierung des Zurückgebens eines Bindungsausdrucks auf verschiedene abgeleitete Klassen, da die Basisklasse eine interne abstrakte Methode aufruft. Andernfalls gibt die Erweiterung das Bindungsobjekt selbst zurück. Die Rückgabe der Bindung selbst führt zu einem Typfehler, der jedoch unter normalen Umständen nicht auftreten sollte.

Wichtig

Da die Syntax für die Bindung über XAML, wie in dieser Methode implementiert, auf der Implementierung einer internen Außerkraftsetzung basiert und da BindingBase.ProvideValue selbst versiegelt ist, funktioniert eine benutzerdefinierte Bindungsklasse, die von BindingBase abgeleitet wird, nicht ordnungsgemäß als XAML-Markuperweiterung.

Gilt für: