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 😉

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert