首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf中的DialogResult问题

wpf中的DialogResult问题
EN

Stack Overflow用户
提问于 2011-07-18 13:54:30
回答 2查看 5.8K关注 0票数 4

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

每次打开它时,我第一次使用新关键字:

代码语言:javascript
复制
var myWindow = new MyWindow();
myWindow.ShowDialog();

第二次从MyWindow视图模型类打开它:

代码语言:javascript
复制
new MyWindow().ShowDialog();

在后面的MyWindow代码中,我有两个事件。一个是当用户clcik确定时,另一个是当用户单击cancel时。

代码语言:javascript
复制
void OnCancel(){
  DialogResult = false;
}

void OnOk(){
  DialogResult = true;
}

事件从View类中触发,形成ICommand执行,而不是绑定到窗口的"ok“和"cancel”按钮。

在xaml中,我这样做是为了取消按钮:

代码语言:javascript
复制
IsCancel = true;

这个是“确定”按钮:

代码语言:javascript
复制
IsDefault = true;

在我第一次打开窗口时,我可以设置DialogResult = true,但在那之后,当我试图设置DialogResult时,我得到了异常"Dialofresult只能在创建窗口之后设置,并显示为ShwDialog“。

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

任何建议

提前感谢

编辑:,问题是,一旦我点击"ok“按钮,DialogResult设置为true和saty,我就不能将其设置为false。

编辑

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

问题是,我注册到视图模型事件("ok“单击和"cancel”单击),当用户单击"cancel“而不是当他单击”ok“时,我会删除寄存器.

EN

回答 2

Stack Overflow用户

发布于 2011-07-18 13:58:26

设置DialogResult将关闭窗口,因此不能再次设置DialogResult

顺便说一句,new Window().ShowDialog()返回一个bool?,而不是一个窗口.

票数 2
EN

Stack Overflow用户

发布于 2011-07-18 14:04:09

如果我关闭窗口并使用

关键字创建一个新窗口,我不明白为什么保持为真.

因为你不喜欢一个新窗口。它返回True,因为正如您第一次解释的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6733986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档