Vi sono pagine di Windows Phone 7, in cui si presentano una o più caselle di testo che, una volta popolate, in seguito al tap dell'utente su un'icona dell'application bar vengono prese in carico. Le guide line consigliano, infatti, di usare tale strumento per confermare dei dati o eseguire un'operazione, per cui è spesso la strada maestra da seguire.
L'appbar presenta però un piccolo difetto, dato che essa non fa perdere il focus alla TextBox su cui l'utente si trova, e di conseguenza il binding non copia il valore della casella sulla proprietà collegata, di un eventuale view model. Per risolvere questo problema si è quindi costretti a forzare l'operazione di binding, come illustrato nello snippet seguente.
// Ottengo l'elemento che ha il Focus
FrameworkElement focusedElement = FocusManager.GetFocusedElement() as FrameworkElement;
if (focusedElement != null && focusedElement is TextBox)
{
// Forzo l'update
BindingExpression expression = focusedElement.GetBindingExpression(TextBox.TextProperty);
if (expression != null)
expression.UpdateSource();
}Come si può vedere, si ricerca l'elemento sul quale il focus è presente, si ottiene l'espressione di binding e con il metodo UpdateSource si forza il travaso del valore.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare la telemetria nella CLI di GitHub
Building Custom Developer Agents
Blazor e Static Web Assets in .NET 10
Ottimizzare le API in ASP.NET con Feature Flags
Abilitare il rolling update su Azure Functions flex consumption
Integrare il Docker Model Runner in un workflow di GitHub
Gestione delle issue type con GitHub
Gestire il ciclo di vita di AbortController in Javascript
Evitare la compressione degli artefatti in un workflow di GitHub
Importare repository da Bitbucket a GitHub Enterprise Cloud
Operazioni tra insiemi di array in Javascript
Creare un extension method per applicare condizionalmente una Where in una query LINQ per Entity Framework


