La markup extension x:Bind è una valida alternativa a {Binding} nelle applicazioni della Universal Windows Platform perché, proprio a partire da Windows 10, è possibile avere binding compilati che sono decisamente più performanti rispetto al classico binding. Non tutte le funzionalità di x:Bind sono identiche a quelle supportate da {Binding} proprio perché nel primo caso i binding vengono elaborati a compile-time, mentre nell'altro vengono elaborati a runtime.
Per ottenere delle prestazioni ottimali, di default il binding viene effettuato in modalità OneTime (al contrario di OneWay di {Binding}) e non è possibile specificare una modalità alternativa. A partire dal Fall Creators Update però, è stata aggiunta una proprietà DefaultBindMode che ha lo scopo di modificare il BindingMode per una porzione specifica di codice che include un intero ramo di XAML.
<Grid x:DefaultBindMode="TwoWay"> <TextBox x:Text="{x:Bind MyProperty}" /> </Grid>
Come mostrato nell'esempio qui sopra, la griglia contenitore ha cambiato la modalità di binding impostandola a TwoWay e, di conseguenza, tutti gli oggetti in essa contenuti, come la TextBox, avranno il binding applicato in quella modalità, a meno ché il sia dichiarato espressamente il contrario.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire una GroupBy per entity in Entity Framework
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Sfruttare lo streaming di una chiamata Http da Blazor
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Eseguire attività basate su eventi con Azure Container Jobs
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Routing statico e PreRendering in una Blazor Web App
Creare moduli CSS in React
Eseguire operazioni sui blob con Azure Storage Actions
Inizializzare i container in Azure Container Apps
Usare il versioning con i controller di ASP.NET Core Web API
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable