DialogResult
обычно не является внутренним полем, а скорее общедоступным свойством, поэтому dlg.DialogResult
должно быть в порядке (учитывая, что оно наследуется от Window), вам необходимо привести его к типу bool.
Я не вижу, чтобы вы открывали окно где-либо, если вы используете ShowDialog
, возвращаемое значение автоматически становится DialogResult
, и вызывающий поток блокируется до тех пор, пока он не закроется.
var result = (bool)dlg.ShowDialog();
Если вам нужен немодальный диалог, вы можете использовать Show
, подписаться на событие Closed
и проверить DialogResult
там.
dlg.Closed += (_,__) =>
{
var result = (bool)dlg.ShowDialog();
// Do something with it.
}
dlg.Show();
Конечно, диалог должен устанавливать свойство в любом случае. Действия по умолчанию, такие как Alt + f4, устанавливают значение false.