У меня есть окно, которое я открываю несколько раз как ShowDialog.
Каждый раз, когда я открываю его, я использую новое ключевое слово в первый раз, когда я это сделал:
var myWindow = new MyWindow();
myWindow.ShowDialog();
секундаКогда я открываю его из класса MyWindow View Model:
new MyWindow().ShowDialog();
в коде MyWindow, у меня есть 2 события.один - когда пользователь clcik ок, а другой - когда пользователь нажимает кнопку отмены.
void OnCancel(){
DialogResult = false;
}
void OnOk(){
DialogResult = true;
}
События запускаются из класса View Model из формы ICommand Execute, а затем связываются с кнопками "ok" и "cancel" окна.
В xaml я сделал это для кнопки отмены:
IsCancel = true;
И это для кнопки ok:
IsDefault = true;
при первом открытиив окне я могу установить DialogResult = true, но после этого, когда я пытаюсь установить DialogResult, у меня возникает исключение: «Dialofresult можно установить только после того, как окно создано и показано как ShwDialog».
Я также увидел, что DialogResultистинно после того, как в первый раз установлено значение true, и я думаю, что причина исключения, но я не понимаю, почему остается верным, если я закрыл окно и создал новое, используя ключевое слово new ...
Любое предложение
Заранее спасибо
Редактировать: Проблема заключается в том, что, как только я нажимаю кнопку "ОК", DialogResult устанавливается на true и saty true, и я могу 'установить его на False.
Редактировать
Спасибо всем, что решил проблему.
Проблема заключалась в том, что я зарегистрировался в событиях View Model (нажал "ok")и «отмена» нажала) и я удаляю регистр, когда пользователь нажимает «отмена», а не когда он нажимает «ок» ...