TOC

This article has been localized into Italian by the community.

Comandi:

Introduzione ai comandi WPF

In un capitolo precedente di questa guida abbiamo descritto come gestire gli eventi; per esempio quando l'utente preme un pulsante o un elemento di menu. Tuttavia, in una interfaccia grafica moderna, è normale per una funzione essere raggiungibile da diversi punti venendo invocata da azioni utente differenti.

Per esempio, se hai una tipica interfaccia con un menù principale ed una barra degli strumenti, un'azione come 'Nuovo' o 'Apri' potrebbero essere disponibili nel menù, nella barra degli strumenti, in un menù di contesto (per esempio quando fai click con il tasto destro del mouse in un'area) e da una scorciatoia di tastiera come Ctrl+N e Ctrl+O.

Ognuna di queste azioni necessita di eseguire quello che è, tipicamente, lo stesso pezzo di codice. Così, in una applicazione WinForms, dovresti definire un evento per ognuno di queste e poi chiamare una funzione comune. Con l'esempio soprastante, questo porterebbe almeno a tre gestori di eventi ed ha qualche linea di codice per gestire le scorciatoie di tastiera. Non una situazione ideale.

Comandi

Con WPF, Microsoft sta cercando di rimediare a questo con un concetto chiamato 'commands'. Ti consente di definire le azioni in un unico posto e quindi fare riferimento a esse da tutti i controlli dell'interfaccia utente, come voci di menu, pulsanti della barra degli strumenti e così via. WPF rileverà anche le scorciatoie da tastiera e le passerà al comando giusto se presente, questo lo rende il modo ideale per utilizzare scorciatoie da tastiera in un'applicazione.

I comandi risolvono anche un'altra seccatura quando si ha a che fare con più ingressi alla stessa funzione. In un'applicazione WinForms, sei responsabile nello scrivere codice che potrebbe disabilitare gli elementi dell'interfaccia utente quando l'azione non è disponibile. Ad esempio, se la tua applicazione è in grado di utilizzare comandi per la clipboard come Taglia, dovresti abilitare e disabilitare manualmente la voce del menù principale solo quando è stato selezionato il testo,, il pulsante della barra degli strumenti e la voce del menù contestuale ogni volta che cambia la selezione del testo.

Con i comandi WPF, questo è centralizzato. Con un metodo si decide se un dato comando può essere eseguito o meno, e poi WPF commuta lo stato di attivato o disattivato di tutti gli elementi dell'interfaccia collegati, automaticamente. Questo rende molto più facile creare un'applicazione reattiva e dinamica!

Command bindings

I comandi in realtà non fanno nulla da soli. Alla radice, sono costituiti dall'interfaccia ICommand, che definisce solo un evento e due metodi:      Execute () e CanExecute (). Il primo serve per eseguire l'azione effettiva, mentre il secondo serve per determinare se l'azione è attualmente a disposizione. Per eseguire l'azione effettiva del comando, è necessario un collegamento tra il comando e il codice e questo è il punto in cui il CommandBinding entra in gioco.

Un CommandBinding è di solito definito in una finestra o in uno UserControl e contiene un riferimento al comando che gestisce, così come i gestori dell’evento effettivo per gestire gli eventi del comando Execute() e CanExecute().

Comandi predefiniti

Ovviamente è possibile implementare i propri comandi, che esamineremo in uno dei prossimi capitoli, ma per renderti la cosa più semplice, il team WPF ha definito oltre 100 comandi comunemente usati che è possibile utilizzare. Sono stati divisi in 5 categorie, chiamati ApplicationCommands, NavigationCommands, MediaCommands, EditingCommands e ComponentCommands. Soprattutto ApplicationCommands contiene comandi per molte azioni molto frequentemente utilizzate come New, Open, Save e Taglia, Copia e Incolla.

Sommario

I comandi ti aiutano a rispondere a un'azione comune da diverse fonti, utilizzando un singolo gestore di eventi. Rende anche molto più facile abilitare e disabilitare gli elementi dell'interfaccia utente in base alla disponibilità e allo stato corrente. Questa è stata per ora tutta teoria, ma nei prossimi capitoli discuteremo di come sono usati i comandi e come si definiscono i propri comandi personalizzati.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!