我可以使用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。
我可以这样做吗?
感谢
答
方法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
如果你打算等级下降一个新的用户至少有礼貌说为什么。 +1 – 4imble 2011-03-16 09:21:18
你是什么意思“找不到DialogResult”?你不能编译这个,或者你没有从“addPassword.ShowDialog()”得到预期的结果? – zendar 2011-03-16 09:35:12
当我使用DialogResult.GetValueOrDefault()时不编译。 现在,如果我只是执行if语句if(addPassword.ShowDialog()),则从窗口返回的值为null。 – 2011-03-16 23:54:33