C# – DialogResult eines WPF Dialogs setzen und abfragen
Heiliges Brausepulver, wieso kann ich mir nicht merken wie ich das DialogResult-Property eines WPF Dialogs setze bzw. auslese? Das wird hier jetzt ein für allemal hingeschrieben und dann hoffentlich endlich im Hirn abgespeichert.
Der Negativfall DialogResult = false
Dieser Wert kann entweder im Code per Hand gesetzt werden, wird aber auch automatisch gesetzt, wenn ein Button das Attribut IsCancel = true erhalten hat, der Dialog via Escape-Taste, Alt-F4 oder durch einen Klick auf [x] geschlossen wurde.
Der positivFall DialogResult = true
Dieser Fall wird erreicht, indem im Code an beliebiger Stelle explizit this.DialogResult = true gesetzt wird. Es gibt zwar auch die Möglichkeit einen Button mittels IsDefault = true als Standardknopf zu definieren, der dann z.B. bei einem Druck auf <Enter> automatisch speichert und das Formular schließt, damit wird jedoch NICHT automatisch der Wert DialogResult = true gesetzt. Das muss man explizit vornehmen.
DialogResult abfragen
Wurde der Wert gesetzt, kann man ihn in der aufrufenden Methode wie folgt abfragen:
Dialog _dialog = new Dialog();
_dialog.ShowDialog();
if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
{
//DialogResult = true gesetzt und Dialog dann geschlossen
}
else
{
//IsCancel Button geklickt, Dialog mit ESC geschlossen oder [x] geklickt
}
Bitte liebes Hirn, merke es dir doch bitte jetzt. Immer das gleiche zu Googlen ist peinlich. Mir werden ja schon Werbeanzeigen „WPF für Dummys“ angeboten-das sollte dir zu denken geben 😉


