System.invalidOperationException При управлении диалоговым окном

Я столкнулся с ошибкой называется System.invalidOperationException.

Дополнительная информация: указанный элемент уже является логическим ребенком другого элемента. Отключите его сначала.

Я искал через Интернет для решений, но никто из них не решает мою проблему.

Я создал кнопку «Открыть диалог», чтобы открыть диалог. После того, как я открыл диалог, в диалоговом окне показаны две кнопки «Сохранить» и «Отмена». Функция «Отмена» - закрыть диалог. Однако после того, как я нажал «Отмена», когда я попытался снова открыть диалоговое окно, нажав «Открыть диалоговое окно», я столкнулся с ошибкой, указанной выше.

Я опубликую свои коды здесь, а также для метода обработки событий.

В классе MainWindow:

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();
        }

У вас есть идеи, как решить проблему? Ваша помощь будет очень ценится.


person user3481276    schedule 23.04.2014    source источник
comment
Является ли PersonIDTable вашим ViewModel классом?   -  person Muhammad Umar    schedule 23.04.2014
comment
Yup, PersoniDable - мой класс ViewModel.   -  person user3481276    schedule 24.04.2014


Ответы (1)


Вы в значительной степени рассказали ответ на вашем вопросе, вы закрыли диалог, чтобы вы не сможете его открыть. Вставьте создание PersonIDTable внутри openDialogButton_Click, это должно исправить его.

Пример:

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

Сказал бы вам через комментарий, но у меня недостаточно репутации.

person Steven Borges    schedule 23.04.2014