我可以使用WPF的UserControl上的对话框和DialogResult吗?

问题描述:

我有一个UserControl,我需要从对话框中获取输入。但是,当我尝试这样做时:我可以使用WPF的UserControl上的对话框和DialogResult吗?

 AddPassword addPassword = new AddPassword(); 

     if(addPassword.ShowDialog() == == DialogResult.GetValueOrDefault()) 
     { 
      if (addPassword.sTitle != "" 
       && addPassword.sUser != "" 
       && addPassword.sPass != "") 
      { 
       LogIn login = new LogIn(addPassword.sTitle, addPassword.sUser, addPassword.sPass); 
       LogIns.Add(login); 

       lstbxLogins.Items.Add(login.GetTitle()); 
      } 
     } 

它找不到DialogResult。

我可以这样做吗?

感谢

+1

如果你打算等级下降一个新的用户至少有礼貌说为什么。 +1 – 4imble 2011-03-16 09:21:18

+0

你是什么意思“找不到DialogResult”?你不能编译这个,或者你没有从“addPassword.ShowDialog()”得到预期的结果? – zendar 2011-03-16 09:35:12

+0

当我使用DialogResult.GetValueOrDefault()时不编译。 现在,如果我只是执行if语句if(addPassword.ShowDialog()),则从窗口返回的值为null。 – 2011-03-16 23:54:33

方法ShowDialog返回bool?,所以你应该检查的结果是这样的:

if(addPassword.ShowDialog().GetValueOrDefault()) 
{ 
    ... 
} 
+0

如果我使用,我得到一个异常,出现InvalidOperationException: 无法设置可见性或调用Show,ShowDialog的,或WindowInteropHelper.EnsureHandle一个窗口关闭后。 – 2011-03-16 21:59:26

+0

@Homero - 这意味着,您所呼叫的ShowDialog()在窗口被关闭后(你叫窗口的同一实例也多次?)。但是我没有在你提供的代码中看到它,所以这个问题可能与其他东西有关。 – 2011-03-17 07:17:41