gpt4 book ai didi

c# - 无法在 WPF 中设置 DialogResult

转载 作者:IT王子 更新时间:2023-10-29 04:12:51 28 4
gpt4 key购买 nike

我从调用窗口使用 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 是一个可为 null 的 bool 值。但是,您不必强制转换它来获得它的值(value)。

bool? result = myWindow.ShowDialog();
if (result ?? false)
{
// snip
}

那个??如果结果为 null,则设置返回的默认值。更多信息: Using Nullable Types (C# Programming Guide)

至于最初的问题,我唯一一次看到并追踪到这个问题是在设置 DialogResult 和关闭窗口之间处理窗口的时候。不幸的是,我能提供的唯一建议是逐步检查代码并检查操作顺序。我相信我通过设置 DialogResult 然后明确关闭窗口来“修复”它。

关于c# - 无法在 WPF 中设置 DialogResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898708/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com