In WPF la logica del DialogResult è leggermente diversa da quella delle WindowsForm, infatti i valori che può assumere una DialogResult sono True o False (False è il predefinito).
In una finestra di dialogo è in genere disponibile un pulsante speciale per l'annullamento, che corrisponde al pulsante la cui proprietà IsCancel è impostata su true. Un pulsante configurato in questo modo consente di chiudere automaticamente una finestra quando un utente lo seleziona o preme ESC. In entrambi i casi, DialogResult rimane false.
In una finestra di dialogo è in genere disponibile anche un pulsante speciale per l'accettazione, che corrisponde al pulsante la cui proprietà IsDefault è impostata su true. Un pulsante configurato in questo modo genererà l'evento Click quando l'utente lo seleziona o preme INVIO. Tuttavia, la finestra di dialogo non verrà chiusa automaticamente e DialogResult non verrà impostata su true. È necessario scrivere manualmente questo codice, in genere dal gestore dell'evento Click per il pulsante predefinito.
Dopo la chiusura di una finestra di dialogo, è possibile ottenere il risultato dal valore restituito dal metodo ShowDialog o controllando la proprietà DialogResult.
DialogResult può essere impostata solo quando un oggetto Window viene aperto chiamando il metodo ShowDialog.
Esempio Apertura ShowDialog:
MyDialog dialog = new MyDialog();
dialog.ShowDialog();
if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
MessageBox.Show("User clicked OK");
else
MessageBox.Show("User clicked Cancel");
nella Window ShowDialog sono inseriti 2 bottoni (Ok, e Cancel) così gestiti:
Button Width="100" Content="OK" IsDefault="True" Click="ButtonOkClick"/
Button Width="100" Content="Cancel" IsCancel="True"/
e l'evento del bottone OK va ad impostare il valore della ShowDialog:
DialogResult = true;
martedì 27 gennaio 2009
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento