nel mio WPF UI, io uso RoutedCommands che mi riferisco a mio XAML tramite il seguente codice:implementazione WPF personalizzato ICommand e l'evento CanExecuteChanged
Command="viewModel:MessageListViewModel.DeleteMessagesCommand"
non mi piace questo link statico per la mia classe ViewModel , credo che questo non è bello come la creazione di un'implementazione personalizzata ICommand e utilizzare una sintassi simile alla seguente
Command="{Binding DeleteMessagesCommand}"
dopo aver creato uno, ho notato un grave inconveniente di quello che ho fatto: RoutedCommands utilizzano il CommandManager e (in qualche modo è completamente opaco per me) fuoco l'evento CommandManager.RequerySuggested, in modo che il loro metodo CanExecute venga richiesto automaticamente. Per quanto riguarda la mia implementazione personalizzata, CanExecute viene attivato una sola volta all'avvio e mai più dopo.
Qualcuno ha una soluzione elegante per questo?
Grazie mille per questo grande e concisa risposta! Funziona come un fascino. Per caso, sai quando e perché RequerySuggested viene licenziato? –
Non esattamente, ma sembra che capiti molto spesso ... –
OK, grazie mille ancora! –