Windowsストア アプリ開発 Tips集003~何らかの値をストレージに記録する~

マイクロソフトの田中達彦です。
本連載では、C#/XAML でWindowsストアアプリを開発するときにヒントを紹介します。

[何らかの値をストレージに記憶させる]
Windowsストアアプリは、アプリごとに個別のストレージを持っていて、その中にファイルや特定の値を書き込むことができます。
ストレージにアクセスする機能は、Windows.Storage名前空間にあるApplicationDataクラスに含まれています。
Windows.Storage名前空間はVisual Studioで作成するデフォルトのMainPage.xaml.csなどのusing節には含まれていないため、コードの先頭のusingが並んでいるところに以下の1行を追加します。

using Windows.Storage;

以下は一例ですが、グローバル フィールドとしてAppDataというフィールドを定義し、Application.Currentという現在のアプリのストレージへのアクセスを提供するプロパティを代入しています。
このあたりの記述方法は、この方法以外にもいくつかあります。

ApplicationData AppData = ApplicationData.Current;

以下は、stageというフィールドにある値をCurrentStageという設定に記録しています。
"CurrentStage" という文字列の部分は、開発者が任意に決められます。

AppData.LocalSettings.Values["CurrentStage"] = stage;

特定の設定に記録している値を参照するには、以下のように記述します。

object value = AppData.LocalSettings.Values["CurrentStage"];
if (value == null)
    StageNumber = 1;
else
    StageNumber = (int)value;

特定の設定に必ず値が入っているときは、上記のようにnullかどうかを判断せずに読みだすことができます。
上記の例は、値が入っていない可能性があるため、nullかどうかを判定した処理にしています。

[関連記事]
クイック スタート: ローカル アプリケーション データ
https://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/hh700361.aspx

Windows ランタイムを使ったアプリ データへのアクセス
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh464917.aspx

Windowsストア アプリ 作り方解説 Line Attack編 第6回 ~ハイスコアの記録と表示~
https://blogs.msdn.com/b/ttanaka/archive/2013/02/06/windows-line-attack-6.aspx

[前後の記事]
002 ~アプリバーのボタンの表示名を変更する~
004 ~設定チャームに項目を追加する~
Tips集 まとめページ

マイクロソフト
田中達彦