Dela via


Tillägg för bindningsmarkering

Fördröjer ett egenskapsvärde så att det blir ett databundet värde, och skapar ett mellanliggande uttrycksobjekt samt tolkar datakontexten som gäller för elementet och dess bindning vid körning.

Användning av bindningsuttryck

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

Syntaxanteckningar

I dessa syntaxer är [] och * inte literaler. De är en del av en notation som anger att noll eller fler bindProp=värde-par kan användas, med en ,-avgränsare mellan dem och föregående bindProp=värde-par.

Alla egenskaper som anges i avsnittet "Bindningsegenskaper som kan anges med bindningstillägget" kan i stället anges med hjälp av attribut för ett Binding objektelement. Det är dock inte den verkliga användningen av markeringstillägget i Binding, utan bara den allmänna XAML-bearbetningen av attribut som konfigurerar egenskaperna hos CLR-klassen Binding. Med andra ord är <BindingbindProp1="value1"[bindPropN="valueN"]*/> en motsvarande syntax för attribut för Binding objektelementanvändning i stället för användning av Binding uttryck. Mer information om XAML-attributanvändningen för specifika egenskaper för Bindingfinns i avsnittet "XAML-attributanvändning" i relevant egenskap för Binding i klassbiblioteket för .NET Framework.

XAML-värden

Värde Beskrivning
bindProp1, bindPropN Namnet på egenskapen Binding eller BindingBase som ska anges. Alla Binding egenskaper kan inte anges med tillägget Binding och vissa egenskaper kan endast anges i ett Binding uttryck med hjälp av ytterligare kapslade tillägg. Se avsnittet "Bindningsegenskaper som kan anges med bindningstillägget".
value1, valueN Värdet som egenskapen ska anges till. Hanteringen av attributvärdet är i slutändan specifik för typen och logiken för den specifika Binding egenskap som anges.
path Sökvägssträngen som anger den implicita egenskapen Binding.Path. Se även PropertyPath XAML Syntax.

Okvalificerad {Bindning}

Den {Binding}-användning som visas i "Användning av bindningsuttryck" skapar ett Binding-objekt med standardvärden, som innehåller en initial Binding.Pathnull. Detta är fortfarande användbart i många scenarier, eftersom den skapade Binding kanske förlitar sig på viktiga databindningsegenskaper som Binding.Path och Binding.Source som anges i körningsdatakontexten. Mer information om begreppet datakontext finns i Databindning.

Implicit sökväg

Tillägget Binding markup använder Binding.Path som en konceptuell "standardegenskap", där Path= inte behöver visas i uttrycket. Om du anger ett Binding uttryck med en implicit sökväg måste den implicita sökvägen visas först i uttrycket, innan andra bindProp=value par där egenskapen Binding anges med namn. Till exempel: {Binding PathString}, där PathString är en sträng som utvärderas som värdet för Binding.Path i Binding som skapats av markeringstilläggsanvändningen. Du kan lägga till en implicit sökväg med andra namngivna egenskaper efter kommaavgränsaren, till exempel {Binding LastName, Mode=TwoWay}.

Bindningsegenskaper som kan anges med bindningstillägget

Syntaxen som visas i det här avsnittet använder den generiska bindProp=value-approximationen, eftersom det finns många läs- och skrivegenskaper för BindingBase eller Binding som kan anges via markeringstilläggs-/uttryckssyntaxen för Binding. De kan anges i valfri ordning, med undantag för en implicit Binding.Path. (Du har möjlighet att uttryckligen ange Path=, i vilket fall det kan anges i valfri ordning). I grund och botten kan du ange noll eller flera av egenskaperna i listan nedan med hjälp av bindProp=value par avgränsade med kommatecken.

Flera av dessa egenskapsvärden kräver objekttyper som inte stöder en intern typkonvertering från en textsyntax i XAML och därför kräver tillägg för markering för att kunna anges som ett attributvärde. Mer information finns i avsnittet XAML-attributanvändning i .NET Framework-klassbiblioteket för varje egenskap. strängen som du använder för XAML-attributsyntaxen med eller utan ytterligare markeringstilläggsanvändning är i princip samma som värdet som du anger i ett Binding uttryck, med undantaget att du inte placerar citattecken runt varje bindProp=value i uttrycket Binding.

Följande är egenskaper för Binding som inte kan anges med hjälp av Binding markeringstillägg/{Binding} uttrycksformulär.

  • UpdateSourceExceptionFilter: Den här egenskapen förväntar sig en referens till en återanropsimplementering. Återanrop/metoder som inte är händelsehanterare kan inte användas i XAML-syntaxen.

  • ValidationRules: egenskapen tar en allmän samling ValidationRule objekt. Detta kan uttryckas som ett egenskapselement i ett Binding objektelement, men har ingen lättillgänglig attributparsningsteknik för användning i ett Binding uttryck. Se referensavsnittet för ValidationRules.

  • XmlNamespaceManager

Anmärkningar

Viktig

När det gäller prioritet för beroendeegenskap motsvarar ett Binding uttryck ett lokalt angivet värde. Om du anger ett lokalt värde för en egenskap som tidigare hade ett Binding uttryck tas Binding bort helt. Mer information finns i Dependencyegenskapsvärde företräde.

Beskrivning av databindning på grundläggande nivå beskrivs inte i det här avsnittet. Se Översikt över databindning.

Anmärkning

MultiBinding och PriorityBinding stöder inte en XAML-tilläggssyntax. Du använder i stället egenskapselement. Se referensavsnitt för MultiBinding och PriorityBinding.

Booleska värden för XAML är skiftlägesokänsliga. Du kan till exempel ange antingen {Binding NotifyOnValidationError=true} eller {Binding NotifyOnValidationError=True}.

Bindningar som omfattar dataverifiering anges vanligtvis av ett explicit Binding element i stället för som ett {Binding ...} uttryck, och det är ovanligt att ange ValidatesOnDataErrors eller ValidatesOnExceptions i ett uttryck. Det beror på att den tillhörande egenskapen ValidationRules inte enkelt kan anges i uttrycksformuläret. Mer information finns i Implementera bindningsverifiering.

Binding är en markup-förlängning. Markeringstillägg implementeras vanligtvis när det finns ett krav på att undantagsattributvärden ska vara andra än literalvärden eller hanterarnamn, och kravet är mer globalt än typkonverterare som tillskrivs vissa typer eller egenskaper. Alla markeringstillägg i XAML använder { och } tecken i attributsyntaxen, vilket är den konvention som en XAML-processor identifierar att ett markeringstillägg måste bearbeta stränginnehållet. Mer information finns i Markup Extensions and WPF XAML.

Binding är ett atypiskt tillägg på så sätt att den Binding-klass som implementerar tilläggsfunktionerna för WPF:s XAML-implementering även implementerar flera andra metoder och egenskaper som inte är relaterade till XAML. De andra medlemmarna är avsedda att göra Binding till en mer mångsidig och fristående klass som kan hantera många databindningsscenarier utöver att fungera som ett XAML-tillägg.

Se även