gpt4 book ai didi

c# - wpf中的DialogResult问题

转载 作者:行者123 更新时间:2023-11-30 12:15:46 26 4
gpt4 key购买 nike

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

每次我打开它时,我都使用 new 关键字我第一次这样做:

var myWindow = new MyWindow();
myWindow.ShowDialog();

我第二次从 MyWindow View Model 类打开它:

new MyWindow().ShowDialog();

在我后面的 MyWindow 代码中,我有 2 个事件。一个是用户点击确定,另一个是用户点击取消。

void OnCancel(){
DialogResult = false;
}

void OnOk(){
DialogResult = true;
}

事件从 View Model 类触发,形成 ICommand Execute,然后绑定(bind)到窗口的“确定”和“取消”按钮。

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

IsCancel = true;

这是确定按钮:

IsDefault = true;

在我第一次打开窗口时我可以设置 DialogResult = true,但是之后当我尝试设置 DialogResult 时出现异常“Dialofresult can set only after created window and showed as ShwDialog”。

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

任何建议

提前致谢

编辑:问题是,一旦我点击“确定”按钮,DialogResult 设置为 true 和 saty true,我不能将它设置为 false。

编辑

谢谢大家我解决了问题。

问题是我注册到 View 模型事件(点击“确定”和点击“取消”),当用户点击“取消”时我删除了注册,但当他点击“确定”时没有...

最佳答案

设置DialogResult会关闭窗口,所以不能再设置DialogResult

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

关于c# - wpf中的DialogResult问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733986/

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