节目背景:
我正在为 windows phone 7 构建一个应用程序,你可以在其中输入你一周的日常活动和营养计划,这样人们就可以在去健身房等时得到提醒。
每天都有一份小清单,列出当天的锻炼代表和设定的意愿。然而,如果他们那天没有训练,这意味着这是一个“休息日”,他们按下休息日按钮,一个画布出现在列表中,上面写着休息日。
问题是我让应用程序使用 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();
}
该程序似乎根本没有保存画布的状态,当我按下画布折叠或向上时,程序崩溃。
关于这可能是什么的任何想法?我真的很难找到解决这个问题的方法。