Come faccio ad avere System.Windows.ShowDialog () per tornare 'vero'?
Domanda
Come faccio ad avere System.Windows.ShowDialog()
di tornare 'vero'?
Sono un po 'nuovo a questo. System.Windows.ShowDialog
's tipo di ritorno è bool
? Si suppone per tornare true
quando si colpisce Submit
, e false
quando si colpisce Cancel
. Ma io non sono sicuro di come designare quale Button
è il pulsante ufficiale presentare.
EDIT: In una nota correlata, io sono curioso di sapere come si può restituire null.
Soluzione
http://msdn.microsoft.com/ it-it / library / system.windows.window.showdialog.aspx
ShowDialog restituisce un Nullable <(Of <(T>)>) valore booleano che specifica se l'attività è stata accettata o annullato. Il valore di ritorno è il valore della proprietà DialogResult davanti ad una finestra chiude (vedi DialogResult).
In sostanza, si decide impostando il valore del DialogResult, non per colpire un particolare pulsante - a decidere che cosa fa il pulsante
.Altri suggerimenti
In WPF, impostare il Button.IsDefault immobili su true per specificare che un pulsante è il pulsante "invia" per una finestra. Io non sono sicuro al 100% che questo renderà la finestra si chiude con un DialogResult di vero. Se così non fosse, hai solo bisogno di gestire l'evento Click nel seguente modo:
this.DialogResult = true;
Modifica
Allo stesso modo, è possibile utilizzare il pulsante rel="noreferrer"> di avere un pulsante sia il pulsante "annulla" per una forma.
Modifica 2
Credo che la ragione ShowDialog è nullable è che dal momento che è nulla fino a quando il modulo viene inviato o annullato, si potrebbe verificare che se si stesse guardando la finestra di dialogo in un thread in background. Non ho provato questo, ma sembra una ragione logica per cui avevano introducono un terzo stato "sconosciuto" (null) alla proprietà.
se si imposta DialogResult su true ShowDialog restituisce true, se si imposta DialogResult su false ShowDialog restituisce false se la finestra si chiude senza impostare DialogResult (l'utente fa clic sulla X rossa nell'angolo in alto a destra) ShowDialog ritorna null.
Impostazione IsDefault true farà sì che il tasto di guardare un po 'diverso e premendo Invio "click" su questo pulsante.
Se si imposta su true IsCancel l'esc premendo questo pulsante sarà "click".