wpf中的对话结果问题

本文关键字:结果 问题 对话 wpf | 更新日期: 2023-09-27 18:02:52

我有一个窗口,我打开了几次作为ShowDialog

每次打开它,我都使用new关键字第一次我做了:

var myWindow = new MyWindow();
myWindow.ShowDialog();

第二次从我的窗口视图模型类打开它:

new MyWindow().ShowDialog();

在我的窗口代码后面我有2个事件。一个是当用户点击确定,另一个是当用户点击取消。

void OnCancel(){
  DialogResult = false;
}
void OnOk(){
  DialogResult = true;
}

事件从视图模型类触发,通过ICommand执行,然后绑定到窗口的"确定"answers"取消"按钮。

在xaml中,我对取消按钮这样做:

IsCancel = true;

ok按钮:

IsDefault = true;

在我第一次打开窗口时,我可以设置dialgresult = true,但在那之后,当我试图设置dialgresult时,我有例外"Dialofresult只能在创建窗口后设置,并显示为ShwDialog"。

我还看到,第一次设置为true后,dialgresult为真,我认为异常的原因,但我不明白为什么是保持真,如果我关闭窗口,并通过使用新的关键字创建一个新的…

任何建议

Thanks in advance

编辑:

问题是,一旦我点击"确定"按钮,对话结果设置为true和true,我不能将其设置为false。

编辑

谢谢大家我解决了这个问题。

问题是,我注册到视图模型事件("ok"单击和"取消"单击),我删除注册时,用户单击"取消",但不是当他单击"确定"…

wpf中的对话结果问题

设置DialogResult会关闭窗口,无法再设置DialogResult

BTW, new Window().ShowDialog()返回bool?,而不是窗口…

我不明白为什么它保持真实,如果我关闭窗口和创建通过使用新的关键字…创建一个新的目录

因为你在初始化一个新窗口。它返回True,因为正如您第一次解释的那样,它会返回True