Domanda

Ho un controllo utente con un Button associato a NavigationCommands.RefreshCommand . Il gestore per il comando è nel controllo parent. Il CanExecute del gestore è simile al seguente:

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

Per qualche motivo, il Button rimarrà disabilitato finché non faccio clic sulla finestra.

Se faccio clic sul pulsante e lo eseguo (il che fa sì che IsConnecting sia temporaneamente impostato su true) disabiliterà correttamente il pulsante, ma non lo farà abilitare il pulsante fino a quando non provoco un altro evento nella finestra (es. un clic).

Esistono strumenti o trucchi che posso usare per provare a eseguire il debug del gestore CanExecute di un comando associato a un pulsante?

È stato utile?

Soluzione

Il pulsante CanExecute viene chiamato solo quando succede qualcosa nella GUI. Poiché IsConnecting cambia in background, WPF non aggiorna il controllo.

Per forzare WPF ad aggiornare la chiamata CanExecute CommandManager.InvalidateRequerySuggested

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top