c# - WPF 窗口 ShowDialog() 导致无法设置可见性或调用 Show

标签 c# wpf wpf-controls

我正在创建一个 wpf 表单,它将用于添加/编辑数据网格中的数据。但是,当我检查 ShowDialog() == true 时,出现上述异常。

代码摘自一本书(Windows Presentation Foundation 4.5 Cookbook)。

UserWindow usrw = new UserWindow();
usrw.ShowDialog();
if (usrw.ShowDialog() == true)
{
     //do some stuff here;               
}

在 WPF 窗口上:

private void btn_Save_Click(object sender, RoutedEventArgs e)
{
   DialogResult = true;
   Close();
}

我该如何处理?

===============================

该问题的解决方案是简单地删除 usrw.ShowDialog();它开始按预期工作

UserWindow usrw = new UserWindow();
//usrw.ShowDialog();
if (usrw.ShowDialog() == true)
{
     //do some stuff here;               
}

最佳答案

每次调用 ShowDialog()

时,您都试图打开窗口 2 次

尝试

UserWindow usrw = new UserWindow();
bool result =(bool)usrw.ShowDialog();
if (result)
{
     //do some stuff here;               
}

UserWindow usrw = new UserWindow();
usrw.ShowDialog();
if ((bool)usrw.DialogResult)
{
    //do some stuff here;               
}

请记住 DialogResult 是 Nullable。如果您有可能在未设置 DialogResult 的情况下关闭窗口,请检查 null

关于c# - WPF 窗口 ShowDialog() 导致无法设置可见性或调用 Show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070991/

相关文章:

c# - 使用基于 DLR 的语言而不是 C# 来执行脚本任务的原因是什么?

wpf - ColumnDefinition 在调整大小之前不会扩展

c# - SvgViewbox 在鼠标悬停时不显示工具提示

c# - WPF XAML 问题中的 ScintillaNET

c# - PrintNormal() 问题 'It is not Initialized'

c# - WPF 弹出窗口 : open with animation

wpf - 将 XAML 中的属性设置为函数

c# - 从 C# 代码启动 Storyboard

c# - 单例不应该总是被销毁吗?

c# - 渴望从 NHibernate 中的表值函数加载相关实体