uwp
Legatura vs x: legatura
Ricerca…
Sintassi
<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]}" ... />
Osservazioni
L'estensione di markup {x:Bind}
- nuova per Windows 10 - è un'alternativa a {Binding}
.
{x:Bind}
non include alcune delle funzionalità di {Binding}
, ma viene eseguito in meno tempo e in meno di memoria rispetto a {Binding}
e supporta un debug migliore.
Al momento del caricamento XAML, {x:Bind}
viene convertito in ciò che si può pensare come oggetto vincolante e questo oggetto ottiene un valore da una proprietà su un'origine dati. L'oggetto vincolante può essere configurato facoltativamente per osservare le modifiche nel valore della proprietà dell'origine dati e aggiornarsi in base a tali modifiche. Può anche essere configurato facoltativamente per trasferire le modifiche nel proprio valore alla proprietà sorgente. Gli oggetti di bind creati da {x:Bind}
e {Binding}
sono in gran parte equivalenti dal punto di vista funzionale. Ma {x:Bind}
esegue il codice per scopi speciali, che genera in fase di compilazione, e {Binding}
utilizza l'ispezione dell'oggetto runtime per scopi generici. Di conseguenza, le associazioni {x:Bind}
(spesso indicate come associazioni compilate) offrono grandi prestazioni, forniscono la convalida in fase di compilazione delle espressioni di collegamento e supportano il debug, consentendo di impostare i punti di interruzione nei file di codice che vengono generati come classe per la tua pagina. Questi file possono essere trovati nella tua cartella obj, con nomi come (per C #) .g.cs.
Per ulteriori informazioni, consultare la documentazione MSDN su x: Bind
Valutare {x: Bind} dalle funzioni
Questa abilità è stata aggiunta all'estensione di markup Bind dopo la v1607 (Redstone 1).
È possibile specificare un percorso di funzione, nonché percorsi di arg e argomenti costanti. Supponiamo di avere una funzione definita nel nostro backcode:
public string Translate(string text, string from, string to)
Ora possiamo usare bind per valutare la funzione nell'elemento che vogliamo:
<TextBlock Name="SomeText" Text="How are you?" />
<TextBlock Name="{x:Bind Translate(SomeText.Text, 'en', 'es')}" />
I percorsi funzione e arg possono contenere anche punti e cast.