Bindung als MarkuperweiterungBinding Markup Extension

Verzögert einen Eigenschaftenwert, um einen datengebundenen Wert, Erstellen eines intermediären Ausdrucks-Objekts und interpretieren den Datenkontext, 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.

Von BindungsausdrückenBinding 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]*}" .../>  

Die Anmerkungen zu dieser SyntaxSyntax Notes

In der folgenden Syntax die [] und * sind keine Literale.In these syntaxes, the [] and * are not literals. Sie sind Teil einer Notation, um anzugeben, dass NULL oder mehr BindProp=Wert Paare verwendet werden können, mit einem , als Trennzeichen zwischen Ihnen und vorherigen BindProp = Wert Paare.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.

Die Eigenschaften im Abschnitt "Binden, können werden legen Sie mit der Bindung Erweiterungseigenschaften" aufgeführten konnte stattdessen festgelegt werden mithilfe von Attributen von einem Binding Object-Element.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 Markuperweiterungsverwendung von Binding, es ist nur die allgemeine XAML-Verarbeitung von Attributen, die Eigenschaften der CLR Binding Klasse.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. Das heißt, <Binding bindProp1="value1 "[ BindPropN="Wertn "]*/> ist eine alternative Syntax für die Attribute des Binding Objekt Objektelementverwendung anstelle einer Binding Ausdruck Nutzung.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. Informationen zu den XAML-Attributverwendung von bestimmten Eigenschaften von Binding, finden Sie im Abschnitt "XAML-Attributverwendung" der relevanten Eigenschaft von Binding 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 des der Binding oder BindingBase festzulegende Eigenschaft.The name of the Binding or BindingBase property to set. Nicht alle Binding Eigenschaften können festgelegt werden, mit der Binding -Erweiterung und einige Eigenschaften können festgelegt werden, in eine Binding Ausdruck nur mithilfe von weiteren geschachtelte Markuperweiterungen.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. Finden Sie unter "Binden von Eigenschaften, dass können werden festgelegt mit der Bindung Abschnitt" Erweiterung"".See "Binding Properties That Can Be Set with the Binding Extension" section.
value1, valueN Der Wert, der die Eigenschaft auf festgelegt.The value to set the property to. Die Behandlung von den Wert des Attributs ist letztendlich für den Typ und die Logik der spezifischen Binding -Eigenschaft festgelegt wird.The handling of the attribute value is ultimately specific to the type and logic of the specific Binding property being set.
path Die Pfadzeichenfolge, die den impliziten festlegt Binding.Path Eigenschaft.The path string that sets the implicit Binding.Path property. Siehe auch "PropertyPath"-XAML-Syntax.See also PropertyPath XAML Syntax.

Nicht qualifizierte {Binding}Unqualified {Binding}

Die {Binding} Gebrauch in "Bindungsausdrücken" erstellt eine Binding Objekt mit den Standardwerten, wozu ein ursprüngliches Binding.Path von null.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 Fällen nach wie vor nützlich da das erstellte Binding möglicherweise werden der vertrauenden Seite für die Bindungseigenschaften für die wichtigen Daten wie z. B. Binding.Path und Binding.Source im Datenkontext zur Laufzeit festgelegt wird.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 über das Konzept der Datenkontext, finden Sie unter Datenbindung.For more information on the concept of data context, see Data Binding.

Implizite PfadImplicit Path

Die Binding Markuperweiterung verwendet Binding.Path als konzeptionelle "default-Eigenschaft", wobei Path= muss sich nicht im Ausdruck angezeigt werden.The Binding markup extension uses Binding.Path as a conceptual "default property", where Path= does not need to appear in the expression. Bei Angabe einer Binding Ausdruck mit einem impliziten Pfad, der implizite Pfad muss zuerst in den Ausdruck ein, bevor alle anderen Vorkommen bindProp = value Paare, wobei die Binding Eigenschaft wird anhand des Namens.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. Zum Beispiel: {Binding PathString}, wobei PathString ist eine Zeichenfolge, die ausgewertet wird, um den Wert der Binding.Path in die Binding durch die Verwendung der Markuperweiterung erstellt.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 einen impliziten Pfad mit anderen benannten Eigenschaften z. B. nach dem Komma als Trennzeichen, Anfügen {Binding LastName, Mode=TwoWay}.You can append an implicit path with other named properties after the comma separator, for example, {Binding LastName, Mode=TwoWay}.

Binden der Eigenschaften, die mit der Bindungserweiterung festgelegt werden könnenBinding Properties That Can Be Set with the Binding Extension

Die in diesem Thema gezeigten Syntax verwendet den generischen bindProp = value Schätzung, weil es viele Lese-/Schreibeigenschaften der gibt BindingBase oder Binding , die festgelegt werden können, über die Binding Markuperweiterung / Die 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 festgelegt werden, in beliebiger Reihenfolge, mit Ausnahme von einer impliziten Binding.Path.They can be set in any order, with the exception of an implicit Binding.Path. (Sie haben die Möglichkeit, explizit angeben Path=, wobei sie in beliebiger Reihenfolge festgelegt werden kann).(You do have the option to explicitly specify Path=, in which case it can be set in any order). Im Wesentlichen lassen sich 0 (null) oder mehrere Eigenschaften in der folgenden Liste mit bindProp = value durch Kommas getrennt.Basically, you can set zero or more of the properties in the list below, using bindProp=value pairs separated by commas.

Einige der Werte dieser Eigenschaften erfordern Objekttypen, die nicht unterstützen eine systemeigene typkonvertierung aus einer Textsyntax in XAML, und daher Markuperweiterungen erfordern, um als Attributwert festgelegt werden.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. Überprüfen Sie den XAML-Attributverwendung-Abschnitt in der .NET Framework-Klassenbibliothek für jede Eigenschaft Informationen; die Zeichenfolge, die Sie für die XAML-Attributsyntax mit verwenden oder ohne weitere Markuperweiterung Nutzung ist im Grunde identisch mit dem Wert, der Sie, in angeben einem Binding Ausdruck mit der Ausnahme, dass Sie keine Anführungszeichen um die einzelnen setzen bindProp = value in die Binding Ausdruck.Check 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.

Im folgenden sind die Eigenschaften des Binding , kann nicht mithilfe von festgelegt werden die Binding Markuperweiterung /{Binding} Ausdruck-Form.The following are properties of Binding that cannot be set using the Binding markup extension/{Binding} expression form.

  • UpdateSourceExceptionFilter: Diese Eigenschaft erwartet, dass einen Verweis auf eine rückrufimplementierung.UpdateSourceExceptionFilter: this property expects a reference to a callback implementation. Rückrufe/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 akzeptiert eine generische Auflistung von ValidationRule Objekte.ValidationRules: the property takes a generic collection of ValidationRule objects. Dies als ein Eigenschaftenelement in ausgedrückt werden könnte eine Binding Objekt-Element, aber verfügt über keine verfügbar Attribut-Analyse-Technik für die Verwendung in einer 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. Finden Sie unter Referenzthema für ValidationRules.See reference topic for ValidationRules.

  • XmlNamespaceManager

HinweiseRemarks

Wichtig

Im Hinblick auf haben Abhängigkeitseigenschaften eine Binding Ausdruck ist gleichbedeutend mit 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 einer Eigenschaft festlegen, die bisher ein Binding Ausdruck, der Binding 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.

Der Datenbindung auf einer grundlegenden Ebene wird in diesem Thema nicht behandelt.Describing data binding at a basic level is not covered in this topic. Finden Sie unter Übersicht über die Datenbindung.See Data Binding Overview.

Hinweis

MultiBinding und PriorityBinding bieten keine Unterstützung für eine XAMLXAML Erweiterungssyntax.MultiBinding and PriorityBinding do not support a XAMLXAML extension syntax. Verwenden Sie stattdessen Eigenschaftenelemente.You would instead use property elements. Finden Sie unter Referenzthemen für MultiBinding und PriorityBinding.See reference topics for MultiBinding and PriorityBinding.

Boolesche Werte für die XAML werden die Groß-/Kleinschreibung.Boolean values for XAML are case insensitive. Sie können z. B. angeben entweder {Binding NotifyOnValidationError=true} oder {Binding NotifyOnValidationError=True}.For example you could specify either {Binding NotifyOnValidationError=true} or {Binding NotifyOnValidationError=True}.

Bindungen, bei denen die datenvalidierung werden in der Regel durch eine explizite angegeben Binding Element statt als ein {Binding ...} Ausdruck und Einstellung ValidatesOnDataErrors oder ValidatesOnExceptions ist ungewöhnlich, dass in einem Ausdruck.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. Grund hierfür ist die zugehörige Eigenschaft ValidationRules kann nicht ohne weiteres in der Form Ausdruck festgelegt werden.This is because the companion property ValidationRules cannot be readily set in the expression form. Weitere Informationen finden Sie unter implementieren Binding Validation.For more information, see Implement Binding Validation.

Binding ist eine Markuperweiterung.Binding is a markup extension. Markuperweiterungen werden in der Regel implementiert, wenn eine Anforderung, um die Attributwerte, um als literale Werte oder Namen werden mit Escapezeichen versehen, und die Anforderung eher global und nicht für bestimmte Typen oder Eigenschaften der attributierten Typkonverter ist.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 Markuperweiterungen in XAML verwenden die { und } Zeichen in der Attributsyntax, dies ist die Konvention mit dem ein XAML-Prozessor erkennt, dass der Inhalt der Zeichenfolge von eine Markuperweiterung verarbeitet werden 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.

Binding ist eine ungewöhnliche Markuperweiterung in, das die Binding Klasse, die die Funktionalität von Erweiterungen für WPF XAML-Implementierung implementiert implementiert auch einige andere Methoden und Eigenschaften, 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 Mitglieder machen sollen Binding eine vielseitigere und eigenständige-Klasse, die zusätzlich zu Ihrer Funktion als eine XAML-Markuperweiterung viele Datenbindungsszenarien behandeln kann.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