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
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Modernizzare le applicazioni WPF e Windows Forms con Blazor
Pubblicare un pacchetto di NuGet nel feed di GitHub
Utilizzo di Set e Array in JavaScript
Personalizzare le richieste con i rule set di Azure Front Door
Migrare un repository git da Azure DevOps a GitHub
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Gestire la query string nell'output cache di ASP.NET Core
Sopprimere gli errori di concorrenza quando si elimina una entity con Entity Framework 7
Taggare automaticamente un repository con un workflow di GitHub
Dependency Injection e custom validator in Blazor con .NET 7.0