Это вряд ли идеально, но попробуйте поместить Messagebox внутри каждого из обработчиков событий. Таким образом, вы можете определить, когда каждый стреляет, и посмотреть, не стреляет ли он.
Также вам может понадобиться часто удалять приложение, чтобы очистить IsolatedStorage. Известно, что это создает проблемы, если вы продолжаете работать в той же установке.
РЕДАКТИРОВАТЬ: Да, из того, что я столкнулся, приложение может зависнуть, если вы не сохраняете должным образом в изолированном хранилище. Это также может произойти, если вы неправильно загружаете данные из изолированного хранилища. Возможно, вы захотите попробовать каждый по отдельности. Используйте окно сообщения, чтобы убедиться, что оно сохраняется и загружается правильно, поскольку VisualStudio выйдет из текущего сеанса отладки.
ОБНОВЛЕНИЕ Вам нужно создать глобальную переменную unsavedPrescription. Теперь, когда пользователь выбирает рецепт, назначают глобальную переменную «несохраненный» рецепт, который он выбрал. Примечание. Не следует назначать свойства при деактивации приложения, поскольку вполне возможно, что оно не будет полностью сохранено, что приведет к зависанию приложения. Вместо этого все, что вам нужно сделать, это присвоить выбранный рецепт глобальной переменной и изменить код в App.xaml.cs следующим образом:
public unsaved unsavedPrescription {get; set;}
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
//Open up IsolatedStorageSettings
IsolatedStorageSettings settings = Isolated StorageSettings.ApplicationSettings;
//Use a model to save prescription
//So create a name/value pair to store the prescription in isolatedstorage
//Notice we used the global variable
settings["UnsavedPrescription"] = unsavedPrescription;
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
//Now you can easily load the prescription you saved
//I'm reassigning the global variable that will contain the savedprescription
if(settings.TryGetValue("UnsavedPrescription", out prescription)
{
unsavedPrescription = prescription;
}
}
Это значительно упрощает ваш код при загрузке и сохранении. Также вы сможете протестировать, используя ящики сообщений, как я уже говорил ранее, это не профессионально, но работает хорошо. Кроме того, вы не используете слишком много материала, когда приложение пытается деактивировать. ЭТОТ ПУТЬ РАБОТАЕТ, КАК Я ИСПЫТАЛ. То, как вы это сделали выше, похоже на то, что вы выполняете много кода, когда приложение деактивируется, поэтому, вероятно, оно зависает. Также это объясняет, почему при удалении все работает.