Bindung als MarkuperweiterungBinding Markup Extension

Gibt an, dass ein Eigenschafts Wert ein Daten gebundener Wert ist, indem ein zwischen Ausdrucks Objekt erstellt und der Datenkontext interpretiert wird, der für das Element und seine Bindung zur Laufzeit gilt.Defers a property value to be a data-bound value, creating an intermediate expression object and interpreting the data context that applies to the element and its binding at run time.

Verwendung des Bindungs AusdrucksBinding Expression Usage

<object property="{Binding}" .../>  
-or-  
<object property="{Binding  bindProp1=value1[, bindPropN=valueN]*}" ...  
/>  
-or-  
<object property="{Binding path}" .../>  
-or  
<object property="{Binding path[, bindPropN=valueN]*}" .../>  

Syntax HinweiseSyntax Notes

In diesen Syntaxen [] sind und * keine Literale.In these syntaxes, the [] and * are not literals. Sie sind Teil einer Notation, um anzugeben, dass NULL oder mehr BindProp=-Wertpaare verwendet werden können, , wobei ein Trennzeichen zwischen Ihnen und vorangehenden BindProp=-Wertpaaren verwendet werden kann.They are part of a notation to indicate that zero or more bindProp=value pairs can be used, with a , separator between them and preceding bindProp=value pairs.

Alle Eigenschaften, die im Abschnitt "Bindungseigenschaften, die mit der Bindungs Erweiterung festgelegt werden können" aufgelistet sind, können stattdessen mithilfe der Attribute Binding eines-Objekt Elements festgelegt werden.Any of the properties listed in the "Binding Properties That Can Be Set with the Binding Extension" section could instead be set using attributes of a Binding object element. Dies ist jedoch nicht wirklich die Verwendung der Markup Erweiterung von Binding, sondern lediglich die allgemeine XAML-Verarbeitung von Attributen, die Eigenschaften der CLR Binding -Klasse festlegen.However, that is not truly the markup extension usage of Binding, it is just the general XAML processing of attributes that set properties of the CLR Binding class. Anders ausgedrückt: <Binding bindProp1="value1 bindpropn valueN ist eine äquivalente Syntax für Attribute der Binding Verwendung von Objekt Elementen."]*/> ="``"[ anstelle einer Binding Ausdrucks Verwendung.In other words, <Binding bindProp1="value1"[ bindPropN="valueN"]*/> is an equivalent syntax for attributes of Binding object element usage instead of a Binding expression usage. Weitere Informationen zur Verwendung von XAML-Attributen für bestimmte Eigenschaften Bindingvon finden Sie im Abschnitt "XAML-Attribut Verwendung" der entsprechenden Eigenschaft Binding von in der .NET Framework-Klassenbibliothek.To learn about the XAML attribute usage of specific properties of Binding, see the "XAML Attribute Usage" section of the relevant property of Binding in the .NET Framework Class Library.

XAML-WerteXAML Values

bindProp1, bindPropN Der Name Binding der festzulegenden-Eigenschaft oder BindingBase der-Eigenschaft.The name of the Binding or BindingBase property to set. Nicht alle Binding Eigenschaften können mit der Binding Erweiterung festgelegt werden, und einige Eigenschaften können nur in einem Binding Ausdruck mithilfe weiterer geschachtelter Markup Erweiterungen festgelegt werden.Not all Binding properties can be set with the Binding extension, and some properties are settable within a Binding expression only by using further nested markup extensions. Weitere Informationen finden Sie im Abschnitt "Bindungseigenschaften, die mit der Bindungs Erweiterung festgelegt werden können".See "Binding Properties That Can Be Set with the Binding Extension" section.
value1, valueN Der Wert, auf den die Eigenschaft festgelegt werden soll.The value to set the property to. Die Behandlung des Attribut Werts ist letztendlich spezifisch für den Typ und die Logik der Binding festzulegenden Eigenschaft.The handling of the attribute value is ultimately specific to the type and logic of the specific Binding property being set.
path Die Pfad Zeichenfolge, die Binding.Path die implizite Eigenschaft festlegt.The path string that sets the implicit Binding.Path property. Siehe auch PropertyPath-XAML-Syntax.See also PropertyPath XAML Syntax.

Nicht qualifiziert {Binding}Unqualified {Binding}

Die {Binding} in "Verwendung von Bindungs Ausdrücken" gezeigte Verwendung erstellt Binding ein-Objekt mit Standardwerten, das eine Binding.Path anfängliche nullvon enthält.The {Binding} usage shown in "Binding Expression Usage" creates a Binding object with default values, which includes an initial Binding.Path of null. Dies ist in vielen Szenarios immer noch nützlich, da Binding der erstellte möglicherweise auf Schlüsseldaten Bindungseigenschaften, Binding.Path wie Binding.Source z. b., und festgelegt wird, die im Laufzeitdaten Kontext festgelegt werden.This is still useful in many scenarios, because the created Binding might be relying on key data binding properties such as Binding.Path and Binding.Source being set in the run-time data context. Weitere Informationen zum Konzept des Daten Kontexts finden Sie unter Datenbindung.For more information on the concept of data context, see Data Binding.

Impliziter PfadImplicit Path

Die Binding Markup Erweiterung verwendet Binding.Path als konzeptionelle "Standard Eigenschaft", wobei Path= nicht im Ausdruck angezeigt werden muss.The Binding markup extension uses Binding.Path as a conceptual "default property", where Path= does not need to appear in the expression. Wenn Sie Binding einen Ausdruck mit einem impliziten Pfad angeben, muss der implizite Pfad vor allen anderen = bindProp value Paaren, in denen die Eigenschaft anhand des Binding namens angegeben wird, zuerst im Ausdruck angezeigt werden.If you specify a Binding expression with an implicit path, the implicit path must appear first in the expression, prior to any other bindProp=value pairs where the Binding property is specified by name. Beispiel: {Binding PathString}, wobei PathString eine Zeichenfolge ist, die als Wert von Binding.Path Binding ausgewertet wird, der von der Markup Erweiterungs Verwendung erstellt wurde.For example: {Binding PathString}, where PathString is a string that is evaluated to be the value of Binding.Path in the Binding created by the markup extension usage. Sie können nach dem Komma Trennzeichen einen impliziten Pfad mit anderen benannten Eigenschaften anfügen, z {Binding LastName, Mode=TwoWay}. b.You can append an implicit path with other named properties after the comma separator, for example, {Binding LastName, Mode=TwoWay}.

Bindungseigenschaften, die mit der Bindungs Erweiterung festgelegt werden könnenBinding Properties That Can Be Set with the Binding Extension

Die in diesem Thema gezeigte Syntax verwendet die generische bindProp Binding = value Näherung, da viele Lese-/Schreibeigenschaften von BindingBase oder vorhanden sind, die Binding durch die Markup Erweiterung festgelegt werden können. Ausdruckssyntax.The syntax shown in this topic uses the generic bindProp=value approximation, because there are many read/write properties of BindingBase or Binding that can be set through the Binding markup extension / expression syntax. Sie können in beliebiger Reihenfolge festgelegt werden, mit Ausnahme eines Binding.Pathimpliziten.They can be set in any order, with the exception of an implicit Binding.Path. (Sie haben die Möglichkeit, explizit anzugeben Path=. in diesem Fall kann Sie in beliebiger Reihenfolge festgelegt werden.)(You do have the option to explicitly specify Path=, in which case it can be set in any order). Im Grunde können Sie in der folgenden Liste NULL oder mehr Eigenschaften festlegen, indem Sie durch bindProp Kommas getrennte Paare verwenden = value .Basically, you can set zero or more of the properties in the list below, using bindProp=value pairs separated by commas.

Einige dieser Eigenschaftswerte erfordern Objekttypen, die keine systemeigene Typkonvertierung aus einer Text Syntax in XAML unterstützen. Daher benötigen Sie Markup Erweiterungen, damit Sie als Attribut Wert festgelegt werden können.Several of these property values require object types that do not support a native type conversion from a text syntax in XAML, and thus require markup extensions in order to be set as an attribute value. Weitere Informationen finden Sie im Abschnitt "XAML-Attribut Verwendung" in der .NET Framework-Klassenbibliothek für jede Eigenschaft. die Zeichenfolge, die Sie für die XAML-Attribut Syntax mit oder ohne weitere Markup Erweiterungs Verwendung verwenden, ist im Grunde identisch mit Binding dem Wert, den Sie in einem Ausdruck angeben, mit der Ausnahme, bindProp dass Sie keine Anführungszeichen herum =platzieren.imAusdruck. value BindingCheck the XAML Attribute Usage section in the .NET Framework Class Library for each property for more information; the string you use for XAML attribute syntax with or without further markup extension usage is basically the same as the value you specify in a Binding expression, with the exception that you do not place quotation marks around each bindProp=value in the Binding expression.

Die folgenden Eigenschaften von Binding können nicht über das Binding Formular für Markup Erweiterung/{Binding} Ausdruck festgelegt werden.The following are properties of Binding that cannot be set using the Binding markup extension/{Binding} expression form.

  • UpdateSourceExceptionFilter: Diese Eigenschaft erwartet einen Verweis auf eine Rückruf Implementierung.UpdateSourceExceptionFilter: this property expects a reference to a callback implementation. Auf Rückrufe bzw. andere Methoden als Ereignishandler kann nicht in der XAML-Syntax verwiesen werden.Callbacks/methods other than event handlers cannot be referenced in XAML syntax.

  • ValidationRules: die-Eigenschaft nimmt eine generische Auflistung ValidationRule von-Objekten an.ValidationRules: the property takes a generic collection of ValidationRule objects. Dies könnte als Eigenschafts Element in einem Binding -Objekt Element ausgedrückt werden, verfügt jedoch nicht über eine nicht sofort verfügbare Attribut-zu-Methode für die Verwendung in einem Binding -Ausdruck.This could be expressed as a property element in a Binding object element, but has no readily available attribute-parsing technique for usage in a Binding expression. Informationen hierzu finden Sie ValidationRulesim Referenz Thema.See reference topic for ValidationRules.

  • XmlNamespaceManager

HinweiseRemarks

Wichtig

Im Hinblick auf die Rangfolge der Abhängigkeits Eigenschaften entspricht ein Binding -Ausdruck einem lokal festgelegten Wert.In terms of dependency property precedence, a Binding expression is equivalent to a locally set value. Wenn Sie einen lokalen Wert für eine Eigenschaft festlegen, die zuvor einen Binding -Ausdruck enthielt Binding , wird der vollständig entfernt.If you set a local value for a property that previously had a Binding expression, the Binding is completely removed. Weitere Informationen finden Sie unter Priorität von Abhängigkeitseigenschaftswerten.For details, see Dependency Property Value Precedence.

Das Beschreiben der Datenbindung auf der Basisebene wird in diesem Thema nicht behandelt.Describing data binding at a basic level is not covered in this topic. Siehe Übersicht über die Datenbindung.See Data Binding Overview.

Hinweis

MultiBindingPriorityBinding undXAMLXAML unterstützen keine Erweiterungs Syntax.MultiBinding and PriorityBinding do not support a XAMLXAML extension syntax. Stattdessen verwenden Sie Eigenschafts Elemente.You would instead use property elements. Weitere Informationen finden Sie MultiBinding unter PriorityBindingReferenz Themen für und.See reference topics for MultiBinding and PriorityBinding.

Bei booleschen Werten für XAML wird Groß-/Kleinschreibung nicht beachtet.Boolean values for XAML are case insensitive. Beispielsweise können Sie entweder {Binding NotifyOnValidationError=true} oder {Binding NotifyOnValidationError=True}angeben.For example you could specify either {Binding NotifyOnValidationError=true} or {Binding NotifyOnValidationError=True}.

Bindungen, die Daten validieren, werden in der Regel Binding durch ein explizites {Binding ...} -Element anstelle eines ValidatesOnDataErrors - ValidatesOnExceptions Ausdrucks angegeben, und das Festlegen von oder in einem Ausdruck ist nicht üblich.Bindings that involve data validation are typically specified by an explicit Binding element rather than as a {Binding ...} expression, and setting ValidatesOnDataErrors or ValidatesOnExceptions in an expression is uncommon. Dies liegt daran, dass die ValidationRules Begleit Eigenschaft nicht im Ausdrucks Formular problemlos festgelegt werden kann.This is because the companion property ValidationRules cannot be readily set in the expression form. Weitere Informationen finden Sie unter Implementieren der Bindungs Validierung.For more information, see Implement Binding Validation.

Binding ist eine Markuperweiterung.Binding is a markup extension. Markup Erweiterungen werden in der Regel implementiert, wenn es erforderlich ist, Attributwerte als literale Werte oder Handlernamen zu versehen, und die Anforderung ist globaler als Typkonverter, die auf bestimmte Typen oder Eigenschaften zurückzuführen sind.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than type converters attributed on certain types or properties. Alle Markup Erweiterungen in XAML verwenden die { Zeichen } und in der Attribut Syntax. Dies ist die Konvention, mit der ein XAML-Prozessor erkennt, dass eine Markup Erweiterung den Zeichen folgen Inhalt verarbeiten muss.All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the string contents. Weitere Informationen finden Sie unter Markuperweiterungen und WPF-XAML.For more information, see Markup Extensions and WPF XAML.

Bindingist eine atypische Markup Erweiterung darin, Binding dass die Klasse, die die Erweiterungsfunktionen für die XAML-Implementierung von WPF implementiert, auch mehrere andere Methoden und Eigenschaften implementiert, die nicht mit XAML verknüpft sind.Binding is an atypical markup extension in that the Binding class that implements the extension functionality for WPF's XAML implementation also implements several other methods and properties that are not related to XAML. Die anderen Member sind dazu gedacht, Binding eine vielseitige und eigenständige Klasse zu erstellen, die viele Daten Bindungs Szenarien adressieren kann, zusätzlich zur Funktion als XAML-Markup Erweiterung.The other members are intended to make Binding a more versatile and self-contained class that can address many data binding scenarios in addition to functioning as a XAML markup extension.

Siehe auchSee also