管理对话框时出现System.InvalidOperationException

时间:2014-04-23 14:37:44

标签: c# wpf button parent-child invalidoperationexception

我遇到了一个名为System.InvalidOperationException的错误。

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

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

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

我将在此处发布我的代码以及事件处理方法。

在MainWindow的课程中:

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

在ViewModel中:

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

在Dialog类中:

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

你们有什么想法解决这个问题吗?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

示例:

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

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