我们当前运行的应用程序。因此,我们就知道,要得到当前应用程序的ApplicationData,
就通过该属性。
好的,第一个问题解决,现在看第二个问题:如何保存应用程序设置?如何读取?其实这
是一个问题,知道了如何保存,自然就知道如何读取了。
再看看LocalSettings属性,它返回一个ApplicationDataContainer类的实例,这是一个
容器,而且,一个应用程序的本地设置中,还可以包括N个容器,但每个应用程序也会
带有一个容器,所以,如果我们只是存取简单的设置,不需要创建容器,就利用默认的
设置容器即可。
ApplicationDataContainer类有个Values属性,它返回一个IPropertySet接口,侈顺着“
对象浏览器”就能找到,它其实就是一个字典(Key - Value),所以说,“对象浏览器”
非常有用,把它用好了,能为我们解决许多问题。
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
/// <summary>
/// 在此页将要在 Frame 中显示时进行调用。
/// </summary>
/// <param name="e">描述如何访问此页的事件数据。Parameter
/// 属性通常用于配置页。</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
ApplicationDataContainer container = ApplicationData.Current.LocalSettings;
if (container.Values.ContainsKey("index"))
{
this.MyListBox.SelectedIndex = (int)container.Values["index"];
}
else
{
this.MyListBox.SelectedIndex = 0;
}
if (container.Values.ContainsKey("TextBox")) {
textbox1.Text = (string)container.Values["TextBox"];
}
}
private void onSelectedChanged(object sender, SelectionChangedEventArgs e)
{
ListBox lb = sender as ListBox;
if (lb != null)
{
if (lb.SelectedIndex > -1)
{
Windows.Storage.ApplicationDataContainer myContainer = Windows.Storage.ApplicationData.Current.LocalSettings;
myContainer.Values["index"] = lb.SelectedIndex;
}
}
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
Windows.Storage.ApplicationDataContainer myContainer = Windows.Storage.ApplicationData.Current.LocalSettings;
myContainer.Values["TextBox"] = textbox1.Text;
}
}