我有一个窗口,我打开了几次作为ShowDialog
每次打开它,我都使用new关键字第一次我做了:
var myWindow = new MyWindow();
myWindow.ShowDialog();
第二次从我的窗口视图模型类打开它:
new MyWindow().ShowDialog();
在我的窗口代码后面我有2个事件。一个是当用户点击确定,另一个是当用户点击取消。
void OnCancel(){
DialogResult = false;
}
void OnOk(){
DialogResult = true;
}
事件从视图模型类触发,通过ICommand执行,然后绑定到窗口的"确定"one_answers"取消"按钮。
在xaml中,我对取消按钮这样做:
IsCancel = true;
ok按钮:
IsDefault = true;
在我第一次打开窗口时,我可以设置dialgresult = true,但在那之后,当我试图设置dialgresult时,我有例外"Dialofresult只能在创建窗口后设置,并显示为ShwDialog"。
我还看到,第一次设置为true后,dialgresult为真,我认为异常的原因,但我不明白为什么是保持真,如果我关闭窗口,并通过使用新的关键字创建一个新的…
任何建议Thanks in advance
编辑:问题是,一旦我点击"确定"按钮,对话结果设置为true和true,我不能将其设置为false。
编辑
谢谢大家我解决了这个问题。
问题是,我注册到视图模型事件("ok"单击和"取消"单击),我删除注册时,用户单击"取消",但不是当他单击"确定"…
设置DialogResult
会关闭窗口,无法再设置DialogResult
BTW, new Window().ShowDialog()
返回bool?
,而不是窗口…
我不明白为什么它保持真实,如果我关闭窗口和创建通过使用新的关键字…创建一个新的目录
因为你在初始化一个新窗口。它返回True,因为正如您第一次解释的那样,它会返回True