Приложение Silverlight 4 зависает без каких-либо исключений

Я занимаюсь разработкой приложения Silverlight 4 RIA. E сть DataGrid хранение данных и две кнопки: добавить новый элемент и удалить элемент. После создания нового элемента во второй раз приложение зависает примерно так - я объясню странное поведение ниже.

Сценарий создания нового элемента выглядит следующим образом:

  1. После нажатия появится дочернее окно. Ссылка на источник данных домена, используемый на странице parrent, передается в дочернее окно в конструкторе.
  2. Пользователь выбирает файл.
  3. Файл отправляется на веб-сервис. В ответ веб-служба возвращает некоторые данные из этого файла.
  4. Новый объект данных создается и вставляется в источник данных домена.

Дочернее окно приводит к зависанию всего приложения только тогда, когда оно вызывается дважды, но первый вызов требует создания объекта. Я могу многократно открывать и закрывать дочернее окно, и все будет работать нормально, пока не произойдет последовательность: open.create -> open.close / open.create. Я пытался отследить все исключения с помощью инструмента VS (alt ctrl e), но их нет.

Точка останова на

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)

тоже ничего не показывает. Есть идеи?

Код страницы. Код дочернего окна

2 ответа

Решение

Удалите следующее и все будет хорошо.

    private void ChildWindow_Closed(object sender, EventArgs e)
    {
        this.DialogResult = false;
    }

И, чтобы оценить немного больше, ChildWindow_Closed - это результат установки DialogResult в первую очередь. Переустановив это, неожиданные вещи случаются.

Я сделал немного больше исследований после того, как вы помогли мне с этим вопросом. Кажется, это ошибка SL4. Это также должно помочь. Тема об этом на SL форумах.

protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        Application.Current.RootVisual.SetValue(Control.IsEnabledProperty, true);
    }
Другие вопросы по тегам