我有TestPage.xaml,我在其中运行带有问题的测试。我设置了maxCount = 10,所以当我有十个问题时,测试结束。我想创建一个带有3个单选按钮10,15,20的settingPage.xaml,因此当用户选中其中一个来设置maxCount时,它将存储在IsolatedStorageSettings中。但我无法弄清楚如何检查我的TestPage.xaml点击了哪个radiobutton,知道要加载多少个问题?
如果没有If-Else语句,我怎样才能做到这一点?
答案 0 :(得分:0)
您可以使用查询字符串。当您导航到TestPage.xaml
传递最大计数值
NavigationService.Navigate(new Uri("/TestPage.xaml?maxcount=" + maxCount, UriKind.Relative));
在TestPage.xaml
页面中,覆盖OnNavigatedTo
方法并检查传递的查询字符串值。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string maxCount = string.Empty;
if (NavigationContext.QueryString.TryGetValue("maxcount", out maxCount))
{
//parse the int value from the string or whatever you need to do
}
}
或者,您说您已将其存储在隔离存储中,因此您也可以从中读取它。查询字符串方法会更快,但如果用户关闭了应用程序,隔离存储方法将允许您稍后再读取它。
根据评论更新
您可以在隔离存储中存储包含数据的文件(您应该添加错误处理)
using(var fs = IsolatedStorageFile.GetUserStoreForApplication())
using(var isf = new IsolatedStorageFileStream("maxCount.txt", FileMode.OpenOrCreate, fs))
using(var sw = new StreamWriter(isf))
{
sw.WriteLine(maxCount.ToString());
}
然后再读回来
using(var fs = IsolatedStorageFile.GetUserStoreForApplication())
using(var isf = new IsolatedStorageFileStream("maxCount.txt", FileMode.Open, fs))
using(var sr = new StreamReader(isf)
{
string maxCount = sr.ReadToEnd();
//you now have the maxCount value as string
//...
}
答案 1 :(得分:0)
请参见此处使用隔离存储,即使您未运行应用程序也会占用内存空间。因此,当应用程序运行时,为什么不继续保存您的选项Application.Current.Resources
例如:
Application.Current.Resources.Add("Maybe Question section", 50); //will load 50 questions for particular section.
并在取件时
Application.Current.Resources["Maybe Question section"]
然后将tryParse
转换为整数并获取数字。这将是应用程序范围,直到应用程序运行。您可以每次获取特定部分。无需一次又一次地连接到隔离存储器以获取或继续修改文件。