Как определить, запускается ли Window как модальный, используя ShowDialog

У меня есть окно WPF создано. У меня есть несколько случаев, когда я хочу отобразить его с помощью ShowDialog(), а другие просто с помощью Show().

Для ShowDialog() я хочу установить DialogResult, который все работает нормально, однако, если окно запускается с помощью Show () и я устанавливаю DialogResult, я получаю исключение

DialogResult can be set only after Window is created and shown as dialog. 

Как определить, как было запущено окно, чтобы я мог поставить условие для установки DialogResult?

2 ответа

Решение

Проверьте свойство Owner в дочернем диалоге. Если используется Show(), дочернее окно Owner не будет установлено автоматически, но это должно быть при использовании ShowDialog().

Может быть несколько решений, одним из которых может быть переопределение методов ShowDialog() и show(), чтобы вы могли отправить параметр, чтобы определить, каким образом он вызывался. Или просто установите логический флаг в классе.

Другие вопросы по тегам