【发布时间】:2010-10-28 06:36:59
【问题描述】:
我在调用窗口中使用 ShowDialog() 显示 WPF 窗口。窗口打开并且是模态的,如预期的那样。但是,在对话框窗口中的“确定”和“取消”按钮的单击事件中,我分别设置了 this.DialogResult = true (或 false),并且没有设置该值。窗口按预期关闭,但 DialogResult 仍然为空。
这是 WPF 中的错误吗?或者是否有原因无法设置 DialogResult 属性但不会引发异常?该窗口未托管在浏览器中。
调用窗口中的代码:
Window2 win = new Window2();
bool? result = win.ShowDialog();
if (result.HasValue && result.Value) {
//never gets here because result is always null
}
对话窗口中的代码:
this.DialogResult = true;
【问题讨论】:
-
如何将 DialogResult 设置为布尔值?它应该是一个枚举,比如 DialogResult.OK
-
不,在 WPF 中,如果你用它的 ShowDialog() 方法打开一个 Window 对象,你可以将 DialogResult 设置为布尔值。
-
您可以在这里发布您的
<Window ... />定义的内容吗?也许这与您初始化窗口的方式有关。 -
那个Window2是什么?您是否从 Window 派生了自己的 Window 类?那么你的Window2类可能有问题,你应该发布它的源代码。
-
我刚刚遇到了这个问题,从您自己的 Window 类派生时,这似乎是一个错误。不知道如何解决。
标签: c# wpf modal-dialog dialogresult