2014-04-23 27 views
0

我遇到了一个名为System.InvalidOperationException的错误。管理对话框时出现System.InvalidOperationException

附加信息:指定的元素已经是另一个元素的逻辑子元素。先断开它。

我已经通过互联网搜索了解决方案,但没有人解决我的问题。

我创建了一个名为“Open Dialog”的按钮来打开一个对话框。打开对话框后,对话框中显示两个按钮,“保存”和“取消”。 “取消”功能是关闭对话框。但是,在单击“取消”后,当我试图通过单击“打开对话框”重新打开对话框时,我遇到了上述错误。

我会在这里发布我的代码以及事件处理方法。

在类主窗口的:

private void openDialogButton_Click(object sender, RoutedEventArgs e) 
     { 
      PersonIDTable.ShowDialog(); 
     } 

在视图模型:

public void ShowDialog() 
     { 
      PersonID.UserControls.PersonIDDialog dialog = new PersonID.UserControls.PersonIDDialog (this); 
      dialog.Show(); 
     } 

在类对话框:

private void CancelButton_Click(object sender, RoutedEventArgs e) 
     { 
      this.Close(); 
     } 

。你们有什么想法解决问题?您的帮助将不胜感激。

+0

'PersonIDTable'是你的'ViewModel'类吗? –

+0

yup,PersonIDTable是我的ViewModel类。 – user3481276

回答

1

你几乎告诉你的问题的答案,你关闭了对话框,所以你不能重新打开它。 在openDialogButton_Click的内部插入PersonIDTable的创建,应该修复它。

例子:

Form1 form = new Form1(); 
form.ShowDialog(); 

会告诉你这个通过评论,但我没有足够的声誉。