【Windows Phone8】隔離儲存區
前言:
在做App時會有經常使用變數,但有時第一頁也要使用它而第二頁也會使用到,
這時用傳參數的方式可以解決這種問題,但假如你的專案下有兩個子專案,
或跨多頁才使用的參數那就變的很麻煩了,這時使用隔離儲存區儲存參數就不用考慮這麼多麻煩了。
在開始實作前簡單介紹將使用的功能
1.在儲存隔離區中加入資料
IsolatedStorageSettings.ApplicationSettings["索引名稱"] = "值";
2.加入資料後要儲存才有效
IsolatedStorageSettings.ApplicationSettings.Save();
3.清除
IsolatedStorageSettings.ApplicationSettings.Clear();
以下就開始做個小範例。
實作:
Step-1 為了測試方便先建立四個ApplicationBarIconButton
程式碼如下:
private void BuildLocalizedApplicationBar()
{
// 將頁面的 ApplicationBar 設定為 ApplicationBar 的新執行個體。
ApplicationBar = new ApplicationBar();
// 建立新的按鈕並將文字值設定為 AppResources 的當地語系化字串。
ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/add.png", UriKind.Relative));
appBarButton.Text = "加入";
ApplicationBar.Buttons.Add(appBarButton);
ApplicationBarIconButton appBarButtonshow = new ApplicationBarIconButton(new Uri("/Assets/AppBar/upload.png", UriKind.Relative));
appBarButtonshow.Text = "顯示";
ApplicationBar.Buttons.Add(appBarButtonshow);
ApplicationBarIconButton appBarButtondelete = new ApplicationBarIconButton(new Uri("/Assets/AppBar/delete.png", UriKind.Relative));
appBarButtondelete.Text = "刪除";
ApplicationBar.Buttons.Add(appBarButtondelete);
ApplicationBarIconButton appBarButtongo = new ApplicationBarIconButton(new Uri("/Assets/AppBar/next.png", UriKind.Relative));
appBarButtongo.Text = "跳頁";
ApplicationBar.Buttons.Add(appBarButtongo);
appBarButton.Click += appBarButton_Click;
appBarButtonshow.Click += appBarButtonshow_Click;
appBarButtondelete.Click += appBarButtondelete_Click;
appBarButtongo.Click += appBarButtongo_Click;
}
Step-2 在各個ApplicationBarIconButton中設定觸發事件
程式碼如下:
void appBarButtongo_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("/Page.xaml", UriKind.Relative));
}
void appBarButtondelete_Click(object sender, EventArgs e)
{
if (IsolatedStorageSettings.ApplicationSettings.Contains("ID"))
{
IsolatedStorageSettings.ApplicationSettings.Clear();
MessageBox.Show("資料刪除成功");
}
else
{
MessageBox.Show("無資料可刪除");
}
}
void appBarButtonshow_Click(object sender, EventArgs e)
{
try
{
MessageBox.Show(IsolatedStorageSettings.ApplicationSettings["ID"].ToString());
}
catch
{
MessageBox.Show("無資料");
}
}
void appBarButton_Click(object sender, EventArgs e)
{
if (IsolatedStorageSettings.ApplicationSettings.Count==0)
{
IsolatedStorageSettings.ApplicationSettings["ID"] = "Test";
IsolatedStorageSettings.ApplicationSettings.Save();
MessageBox.Show("加入成功");
}
else
{
MessageBox.Show("已加入");
}
}
執行結果:
當按下加入後,跳至第二頁資料依然還在。
註:只要不清除隔離儲存區內資料,就算關閉應用程式後資料依然存在測試圖如下。(慎用)