ho un Menu
dove ogni MenuItem
nella gerarchia ha la proprietà Command
impostata su un RoutedCommand
ho definito. L'associato CommandBinding
fornisce un callback per la valutazione di CanExecute
che controlla lo stato abilitato di ogni MenuItem
.WPF - Come forzare un comando per rivalutare 'CanExecute' attraverso i suoi CommandBindings
Questo quasi funziona. Le voci di menu inizialmente presentano gli stati abilitati e disabilitati corretti. Tuttavia, quando i dati che la mia callback CanExecute
utilizza modifiche, ho bisogno del comando per ri-richiedere un risultato dal mio callback affinché questo nuovo stato si rifletta nell'interfaccia utente.
Non sembrano esserci metodi pubblici su RoutedCommand
o CommandBinding
per questo.
Si noti che la richiamata viene utilizzata di nuovo quando si fa clic o si digita nel controllo (suppongo che sia attivato in input perché il passaggio del mouse non causa l'aggiornamento).
Grazie a questo ha funzionato bene. C'è un leggero ritardo nell'interfaccia utente, ma non ne sono troppo preoccupato.Inoltre, ho votato subito la tua risposta, poi ho ripreso il voto per vedere se ha funzionato. Ora che funziona, non posso ri-applicare nuovamente il voto. Non sono sicuro del perché SO abbia questa regola. –
Ho modificato la tua risposta per riapplicare il mio voto. Non ho cambiato nulla nella modifica. Grazie ancora. –
haha ok :) grazie! – Arcturus