uwp
Binding vs x: Bind
Sök…
Syntax
<object property = "{x: Bind}" ... />
<object property = "{x: Bind propertyPath}" ... />
<object property = "{x: Bind Path = propertyPath}" ... />
<object property = "{x: Bind [bindingProperties]}" ... />
<object property = "{x: Bind propertyPath, [bindingProperties]}" ... />
<object property = "{x: Bind Path = propertyPath, [bindingProperties]}" ... />
Anmärkningar
Markeringstillägget {x:Bind}
- nytt för Windows 10 - är ett alternativ till {Binding}
.
{x:Bind}
saknar några av funktionerna i {Binding}
, men det körs på kortare tid och mindre minne än {Binding}
och stöder bättre felsökning.
Vid XAML-laddningstid konverteras {x:Bind}
till det du kan tänka dig som ett bindande objekt, och detta objekt får ett värde från en egenskap på en datakälla. Det bindande objektet kan valfritt konfigureras för att observera förändringar i värdet på datakällegenskapen och uppdatera sig själv baserat på dessa förändringar. Det kan också valfritt konfigureras för att driva förändringar i sitt eget värde tillbaka till källegenskapen. De bindande objekten som skapas av {x:Bind}
och {Binding}
är i stort sett funktionellt likvärdiga. Men {x:Bind}
exekverar specialkod, som den genererar vid sammanställningstid, och {Binding}
använder allmänna ändamål för inspektion av runtime-objekt. Följaktligen har {x:Bind}
bindningar (ofta kallad sammanställda bindningar) bra prestanda, ger kompileringstid för validering av dina bindande uttryck och stöder felsökning genom att göra det möjligt för dig att ställa in brytpunkter i kodfilerna som genereras som delvis klass för din sida. Dessa filer kan hittas i din obj-mapp, med namn som (för C #) .g.cs.
För mer information se MSDN-dokumentationen om x: Bind
Utvärdera {x: Bind} från funktioner
Denna förmåga lades till Bind-markeringsförlängningen efter v1607 (Redstone 1).
Du kan ange en funktionsväg, såväl som arg-banor och konstanta args. Låt oss anta att vi har en funktion som definieras i vår bakkod:
public string Translate(string text, string from, string to)
Nu kan vi använda bind för att utvärdera funktionen till det element vi vill:
<TextBlock Name="SomeText" Text="How are you?" />
<TextBlock Name="{x:Bind Translate(SomeText.Text, 'en', 'es')}" />
Funktions- och arg-banor kan också innehålla prickar och casts.