我遇到了一个名为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();
}
你们有什么想法解决这个问题吗?非常感谢您的帮助。
答案 0 :(得分:1)
你几乎在你的问题中说出答案,你关闭了对话框,所以你不能重新打开它。
在PersonIDTable
内插入openDialogButton_Click
的创建,应该修复它。
示例:
Form1 form = new Form1();
form.ShowDialog();
通过评论会告诉你这个,但我没有足够的声誉。