我有一个窗口,我作为 ShowDialog 打开了几次。
每次我打开它时,我第一次使用新关键字:
var myWindow = new MyWindow();
myWindow.ShowDialog();
我第二次从 MyWindow View Model 类中打开它:
new MyWindow().ShowDialog();
在 MyWindow 代码后面我有 2 个事件。一种是当用户单击确定时,另一种是当用户单击取消时。
void OnCancel(){
DialogResult = false;
}
void OnOk(){
DialogResult = true;
}
从视图模型类触发的事件形成 ICommand Execute,然后绑定到窗口的“确定”和“取消”按钮。
在 xaml 中,我为取消按钮执行了此操作:
IsCancel = true;
这对于确定按钮:
IsDefault = true;
在我第一次打开窗口时,我可以设置 DialogResult = true,但是之后当我尝试设置 DialogResult 时出现异常“Dialofresult 只能在创建窗口后设置并显示为 ShwDialog”。
我还看到第一次设置为 true 后 DialogResult 为 true,我认为这是异常的原因,但我不明白如果我关闭窗口并使用 new 关键字创建一个新窗口,为什么会保持 true .. .
任何建议
提前致谢
编辑: 问题是,一旦我单击“确定”按钮,DialogResult 设置为 true 和 saty true,我无法将其设置为 false。
编辑
谢谢大家我解决了问题。
问题是我注册到视图模型事件(单击“确定”并单击“取消”),当用户单击“取消”时我删除了注册,但当他单击“确定”时没有删除...