デフォルトビューがロードされることは問題ありませんが、ユーザーは、アプリケーションを実行するたびにビューを変更しなければならないことにうんざりしているかもしれません。Silverlight では、分離ストレージに単純なデータを保存することにより、ビューを保存してセッションをまたいで利用することができます。最初に、セッションをまたいで維持されるデフォルトビューを分離ストレージ内に作成します。IsolatedStorageSettings.ApplicationSettings クラスを使用することで、アプリケーション設定を極めて簡単に保存およびロードすることができます。デフォルトでは、分離ストレージは1 MB に制限されますが、OLAP ビューのサイズはこれに影響されません。
この例では、現在のアプリケーションの Exit イベントで現在のビューを保存します。ユーザーによって行われたカスタマイズは、アプリケーションを閉じると自動的に保存され、次回のアプリケーションの実行時に復元することができます。
C# |
コードのコピー
|
---|---|
// アプリケーションが終了するときに現在のビューをストレージに保存します void Current_Exit(object sender, EventArgs e) { var userSettings = IsolatedStorageSettings.ApplicationSettings; userSettings[VIEWDEF_KEY] = _c1OlapPage.ViewDefinition; userSettings.Save(); } |
ここでは、一意のキーインデックスを使用してアプリケーション設定にアクセスしていることに注目してください。ViewDefinition プロパティから、このデータセットのビューを定義する XML 形式の文字列であるデータを保存します。アプリケーションのどの時点でも、コードの2行目と逆の動作を行うことで、OLAP ビューを復元できます。次に、分離ストレージからビューをロードします。
const string VIEWDEF_KEY = "C1OlapViewDefinition";
アプリケーションを通じて保存されたデータビューに、同じ一意のキーを使用して簡単にアクセスできるように、VIEWDEF_KEY 定数を宣言するこのコード行を追加します。
Application.Current.Exit += Current_Exit;
上のコード行は、アプリケーションが終了する前に発生する Exit イベントをアタッチします。次に、保存で使用したコードと逆の動作を行うことで、分離ストレージからビューをロードします。
C# |
コードのコピー
|
---|---|
// olap ビューを初期化します var userSettings = IsolatedStorageSettings.ApplicationSettings; if (userSettings.Contains(VIEWDEF_KEY)) { // 最後に使用された OLAP ビューを分離ストレージからロードします _c1OlapPage.ViewDefinition = userSettings[VIEWDEF_KEY] as string; } |
ここでプロジェクトを実行すると、コードで作成されたデフォルトビューでプロジェクトが開始されます。ビューに任意の変更を加えてからアプリケーションを終了し、再起動して、変更が復元されていることを確認します。