WPF窗口ShowDialog()导致无法设置可见性或调用显示

时间:2013-09-28 19:45:50

标签: c# wpf wpf-controls

我正在创建一个wpf表单,用于从datagrid添加/编辑数据。但是,当我检查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;               
}

1 个答案:

答案 0 :(得分:6)

每次拨打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