Я неуклюже пытаюсь создать приложение Silverlight 3. Мне нужно руководство высокого уровня для следующего сценария.
У меня есть страница, где пользователь заполняет кучу информации. В нижней части страницы есть кнопка отправки.
При нажатии она передает информацию в базу данных (через службы ria), а затем она мне нужна для пересылки пользователя на новую страницу.
Мой метод отправки в основном выглядит так:
void Click(object o, eventArgs e) {
ViewModel.SaveMyStuff();
this.NavigationService.Navigate(MyUri);
}
Поскольку метод SaveMyStuff () является асинхронным, функция Navigate запускается практически мгновенно. И кажется, что фиксация в базе данных никогда не завершается полностью. Отход от страницы приводит к ее выгружению (и модели просмотра).
Так что, в принципе, я не хочу, чтобы перенаправление происходило до тех пор, пока не завершится фиксация БД, поэтому я смотрю на подключение обработчиков событий, и все это превращается в беспорядок. Есть ли какой-то шаблон или передовой опыт для решения вопроса о том, можно ли перемещаться по страницам от (или другой базовой механики страниц)?
У меня был какой-то код, который был в основном:
if (ViewModel.RiaDataContext.IsSubmitting) {
Thread.Sleep(500);
}
Но а.) Что кажется уродливым взломом, и б.) Это условие никогда не ложно - кажется, что в Ria Services может быть ошибка или подобное.