Esempio Disable Command Source via Dispatcher Timer
Aggiornamento: novembre 2007
In questo esempio viene illustrato come attivare e disattivare un'origine del comando tramite DispatcherTimer.
Le origini del comando, ad esempio la classe MenuItem e la classe Button, rimangono in ascolto dell'evento CanExecuteChanged sul RoutedCommand al quale sono collegate in modo da determinare quando è necessario ottenere informazioni sul comando per verificare se il comando può essere eseguito nella destinazione di comando corrente. Le origini del comando verranno in genere disattivate se il comando non può essere eseguito e attivate se il comando può essere eseguito, ad esempio nel caso di un oggetto MenuItem che viene disattivato quando il comando non può essere eseguito.
CommandManager notifica al RoutedCommand tramite l'evento RequerySuggested che le condizioni sono cambiate nella destinazione di comando. RoutedCommand genera l'evento CanExecuteChanged del quale l'origine del comando è in ascolto. Questo meccanismo di notifica risulta in genere adeguato, ma in alcuni casi CommandManager non è consapevole del fatto che le condizioni sono cambiate nella destinazione di comando. Pertanto, l'evento RequerySuggested non viene mai generato e l'origine del comando non ottiene mai le informazioni su RoutedCommand. In questi casi, è possibile forzare CommandManager affinché generi l'evento RequerySuggested mediante una chiamata a InvalidateRequerySuggested.
In questo esempio viene creato un RoutedCommand che può essere eseguito solo quando i secondi dell'ora corrente sono maggiori di un valore di destinazione. Viene creato un DispatcherTimer che effettua la chiamata a InvalidateRequerySuggested ogni secondo. In questo modo si assicura che l'origine del comando riceva l'evento CanExecuteChanged in modo che possa effettuare la chiamata al metodo CanExecute sul comando.
Per un'altra variante di questo esempio, vedere l'esempio Esempio Disable Command Source via System Timer. Per ulteriori informazioni sui comandi, vedere Cenni preliminari sull'esecuzione di comandi.
Nell'esempio viene illustrata una funzionalità specifica di Windows Presentation Foundation e non vengono pertanto seguite le procedure consigliate per lo sviluppo di applicazioni. Per una descrizione completa delle procedure consigliate per lo sviluppo di applicazioni Windows Presentation Foundation (WPF) e Microsoft .NET Framework, fare riferimento ai seguenti argomenti in base alle esigenze:
Accesso facilitato - Procedure consigliate per l'accesso facilitato
Sicurezza - Sicurezza di Windows Presentation Foundation
Localizzazione - Cenni preliminari sulla globalizzazione e localizzazione WPF
Compilazione dell'esempio
Installare Windows Software Development Kit (SDK) e aprire la finestra di comando dell'ambiente di compilazione. Fare clic sul pulsante Start, quindi scegliere Tutti i programmi, Microsoft Windows SDK, quindi fare clic su CMD Shell.
Scaricare l'esempio nel disco rigido locale, in genere dalla documentazione SDK.
Per generare l'esempio dalla finestra di comando dell'ambiente di compilazione , passare alla directory di origine dell'esempio. Al prompt dei comandi digitare MSBUILD.
Per compilare l'esempio in Microsoft Visual Studio, caricare il file della soluzione o del progetto dell'esempio e premere CTRL+MAIUSC+B.
Esecuzione dell'esempio
Per eseguire l'esempio compilato dalla vfinestra di comando dell'ambiente di compilazione, eseguire il file EXE nella cartella Bin\Debug o Bin\Release contenuta sotto la cartella del codice sorgente dell'esempio.
Per eseguire l'esempio compilato con il debug in Visual Studio, premere F5.
Vedere anche
Attività
Esempio Disable Command Source via System Timer