Silverlight остановка закрытия страницы перед сохранением - PullRequest
2 голосов
/ 18 февраля 2010

В старые времена для WinForms, если ваш пользователь создавал / редактировал некоторую информацию в DialogBox, было легко обнаружить закрытие окна, и если данные были грязными, спросите, хотят ли они сохранить.

У меня вопрос: как вы подходите к этому сценарию в Silverlight, где, кажется, все делается в UserControls, у которого нет очевидного способа узнать, когда страница закрывается, то есть переключение на другую страницу в приложении Silverlight просто откроет другой UserControl без проверки предыдущего UserControl необходимо сохранить.

Должен ли быть какой-то стандартный способ достижения этого?

Ответы [ 3 ]

2 голосов
/ 19 февраля 2010

Если вам нужно задать пользователю вопрос о том, сохранять или нет, вам нужно обработать это в браузере onbeforeunload (хотя это не стандартное событие, оно поддерживается теми браузерами, в которых Silverlight официально поддерживается ). Может быть возможно настроить небольшой javascript для обратного вызова в вашем приложении, когда onbeforeunload срабатывает.

Это сказало, что я не фанат вопроса "Вы уверены, что хотите потерять всю ту работу, которую вы только что сделали". «Конечно, я не хочу потерять его, сохраняйте его, пока я могу отменить его позже, если это необходимо, я счастлив».

2 голосов
/ 18 февраля 2010

Вы можете обработать событие Application.Exit для выполнения кода при завершении работы приложения. Имейте в виду, что в настоящее время сетевой стек уже выключен, поэтому вы не можете отправлять сообщения из Application.Exit. Вы не можете отменить мероприятие.

1 голос
/ 19 февраля 2010

+ 1 Майкл. Это текущее ограничение SL. Однако вы можете сохранить изолированное хранилище из события выхода из приложения, будет ли возможно в вашем приложении проверить, не загрязнено ли оно, и, если это так, сохранить в iso хранилище. Затем в следующий раз, когда ваше приложение загрузится, вы сможете загрузить грязные данные из хранилища iso, готовые продолжить редактирование ..?

...