In un'applicazione WPF, sto creando una finestra di impostazione per personalizzare le scorciatoie da tastiera.Come cambio TextBox.Text senza perdere l'associazione in WPF?
Nelle caselle di testo, gestisco l'evento KeyDown e converto l'evento Key in un formato leggibile dall'uomo (e anche il modulo in cui desidero avere i miei dati).
La casella di testo viene dichiarato come questo
<TextBox Text="{Binding ShortCutText, Mode=TwoWay}"/>
e nel gestore di eventi, ho provato utilizzando sia
(sender as TextBox).Text = "...";
e
(sender as TextBox).Clear();
(sender as TextBox).AppendText("...");
In entrambi i casi, il il binding a viewmodel non funziona, il viewmodel contiene ancora i vecchi dati e non viene aggiornato. Il binding nell'altra direzione (da viewmodel alla casella di testo) funziona correttamente.
C'è un modo per modificare TextBox.Text dal codice senza utilizzare l'associazione? Oppure c'è un errore da qualche altra parte nel mio processo?
Idealmente si dovrebbe aggiornare questo valore nel modello che rifletterà automaticamente le modifiche nelle caselle di testo mentre si utilizza MVVM. – Deepesh
Prova ad aggiungere "UpdateSourceTrigger = PropertyChanged" al tuo binding –
So che questa è una vecchia domanda ormai ma una cosa che la gente sembra ignorare qui è se la proprietà di un controllo è legata ad un altro controllo (Pronunciare un elenco di caselle di controllo che sono tutti spuntati o deselezionati da una casella di controllo genitore). Potrebbe non esserci nulla nella VM per aiutarti qui. –