在應用中通常會遇到使用者主動或被動儲存資訊的情況,當應用關閉後這些資料仍然會儲存在本地裝置上,使用者下次重新啟用應用時會自動載入這些資料。下面將通過一個小執行個體示範如何把使用者資料存放區到本地,首先在Windows 8 應用中建立兩個輸入框:姓名、年齡。
<StackPanel Grid.Row="1" Margin="120,30,0,0"> <StackPanel Orientation="Horizontal" Margin="0,20,0,20"> <TextBlock Text="Name: " Style="{StaticResource BasicTextStyle}" Width="50"/> <TextBox x:Name="nameInput" Width="200"/> </StackPanel> <StackPanel Orientation="Horizontal" Margin="0,20,0,20"> <TextBlock Text="Age: " Style="{StaticResource BasicTextStyle}" Width="50"/> <TextBox x:Name="ageInput" Width="200"/> </StackPanel> <StackPanel Orientation="Horizontal" Margin="0,20,0,20"> <Button Content="Save" Click="Save_Button_Click"/> <Button Content="Reset" Click="Reset_Button_Click"/> </StackPanel></StackPanel>
開啟MainPage .xaml.cs 為了使用資料存放區API,先添加using Windows.Storage 命名空間。在MainPage中使用ApplicationData.LocalSettings屬性擷取到應用設定本機存放區空間。
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
接下來在Save_Button_Click 事件中為localSettings 設定兩個數值分別儲存Name 和Age 資料。
private void Save_Button_Click(object sender, RoutedEventArgs e){ localSettings.Values["name"] = nameInput.Text; localSettings.Values["age"] = ageInput.Text;}
下面要做的就是在應用啟用時將已經儲存在本地的資料載入進來,在MainPage .xaml.cs 程式中已經有一個LoadState 方法用來載入應用資料或狀態,我們可以在這裡完成資料的載入工作。
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState){ if (localSettings.Values.ContainsKey("name")) { nameInput.Text = localSettings.Values["name"].ToString(); } if (localSettings.Values.ContainsKey("age")) { ageInput.Text = localSettings.Values["age"].ToString(); }}
本機資料儲存用於儲存例如應用設定相關的重要訊息,當然這些資料是留存本地裝置中的,如果這些資料不再使用時也可以進行消除操作。如下代碼就是將之前的姓名和年齡資訊進行刪除,資料刪除後重新啟用應用將無法載入。
private void Reset_Button_Click(object sender, RoutedEventArgs e){ localSettings.Values.Remove("name"); localSettings.Values.Remove("age"); nameInput.Text = ""; ageInput.Text = "";}
源碼下載
http://sdrv.ms/RxauDH