プログラムの背景:
私は Windows Phone 7 用のアプリを作成しています。このアプリでは、1 週間のルーチンと栄養計画を入れることができます。これにより、人々はジムなどに行くときにリマインダーを持つことができます。
毎日、その日に行うエクササイズの担当者とセットの小さなリストがあります。ただし、その日にトレーニングを行っていない場合、つまり「休息日」である場合は、休息日ボタンを押すと、休息日オンという言葉でリストをブロックするキャンバスが表示されます。
問題は、アプリがキャンバスの状態を xml を使用してダウンまたはアップしていることを保存しているため、ユーザーがそのページまたはアプリに戻ったときに、キャンバスがそのままの状態になることです。
私が現在持っているコードは次のとおりです。
プログラムのロード時: これは、プログラムが最後に使用されたときに、ユーザーが休息日のキャンバスを上 (true) または下 (false) に持っていたかどうかを確認します。
bool searchValueMon;
if (monRest == true)
{
canMon.Visibility = Visibility.Collapsed;
mondayReadData();
IsolatedStorageSettings.ApplicationSettings.Remove("true");
IsolatedStorageSettings.ApplicationSettings.Save();
}
else
{
canMon.Visibility = Visibility.Visible;
IsolatedStorageSettings.ApplicationSettings.Remove("false");
IsolatedStorageSettings.ApplicationSettings.Save();
}
月曜日の休息ボタン: キャンバスを上に上げます (リストを非表示にします)
canMon.Visibility = Visibility.Visible;
monRest = false;
IsolatedStorageSettings.ApplicationSettings.Add("false", monRest);
// Write to the Isolated Storage
XmlWriterSettings x_W_Settings = new XmlWriterSettings();
x_W_Settings.Indent = true;
using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = ISF.OpenFile("MonRest.xml", FileMode.Create))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Rest>));
using (XmlWriter xmlWriter = XmlWriter.Create(stream, x_W_Settings))
{
serializer.Serialize(xmlWriter, GenerateMonRestData());
}
}
}
IsolatedStorageSettings.ApplicationSettings.Remove(Convert.ToString(monRest));
IsolatedStorageSettings.ApplicationSettings.Save();
以下は、トレーニングの日の準備としてキャンバスを折りたたむための「エクササイズ」と呼ばれるキャンバス上のボタンです。
private void btnMonEx_Click(object sender, RoutedEventArgs e)
{
canMon.Visibility = Visibility.Collapsed;
//monRest = true;
// IsolatedStorageSettings.ApplicationSettings.Remove("false");
IsolatedStorageSettings.ApplicationSettings.Add("true", monRest);
//IsolatedStorageSettings.ApplicationSettings.Save();
mondayReadData();
// IsolatedStorageSettings.ApplicationSettings.Remove(Convert.ToString(monRest));
IsolatedStorageSettings.ApplicationSettings.Save();
}
プログラムはキャンバスの状態をまったく保存していないようで、キャンバスの折りたたみまたはアップを押すと、プログラムがクラッシュします。
これが何であるかについての考えはありますか?これを修正する方法を見つけるのに本当に苦労しています。