バージョン

レイアウトの保存およびロードについて

トピックの概要

目的

このトピックでは、 xamTileManager のレイアウトの保存方法と、その後 Infragistics® Control Persistence Framework を使用してレイアウトを復元する方法について説明します。フレームワークを使用したレイアウトの保存によって、ユーザーは各セッションのアプリケーション レイアウトを再構成する必要がなくなります。

本トピックの内容

このドキュメントには次のセクションが含まれています:

必要な背景

以下の表には、このトピックの必須条件が示されています。

背景タイプ コンテンツ

概念

以下の概念を理解する必要があります。

トピック

コントロールの構成の概要

xamTileManager は、ユーザーによるタイトルの移動とサイズ変更が可能です。ランタイム時に状態を変更できる機能によって、レイアウトを完全にカスタマイズすることができます。セッション間にカスタム レイアウトが保存および読み込まれるため、ユーザーがアプリケーションを再起動するたびに xamTileManager のレイアウトの設定をする必要はありません。Infragistics Control Persistence Framework によって、xamTileManager のタイル レイアウトを保存およびロードすることができます。

レイアウトでタイルの状態の情報を保存するには、タイルに名前を付けるか、またはxamTileManager の添付プロパティである SerializationId プロパティを一意の文字列値に設定する必要があります。Name および SerializationId プロパティの両方を設定すると、SerializationId プロパティが優先されます。xamTileManager はタイルのシリアル ID を設定するためにいくつかの異なる方法を提供します。

  • xamTileManager によって公開されている添付の SerializationId プロパティを設定できます。xamTileManager の Items コレクションに DependencyObject クラスから派生する項目を手動で追加する時に、このアプローチを使用できます。

  • xamTileManager の SerializationIdPath プロパティを、データ項目によって公開されるプロパティの名前に設定できます。タイルを作成するためにデータに xamTileManager をバインドする時に、このアプローチを使用できます。

  • SavingItemMapping イベントを処理し、 SavingItemMappingEventArgs オブジェクトの SerializationId プロパティを設定できます。SavingItemMapping イベントを処理する場合、シリアライゼーション ID を特定の項目にマップするために LoadingItemMapping イベントを処理する必要もあります。

タイルに名前を付ける場合、あるいはシリアライゼーション ID を提供してもタイルを保存したくない場合、その SaveInLayout プロパティを False に設定します。

コントロールの構成チャート

以下の表は、xamTileManager のレイアウトを保存およびロードするために使用できるメソッドを示しています。

機能 詳細 静的メソッド

静的メソッドの保存 を使用して、xamTileManager のタイル レイアウトを保存します

静的メソッドのロード を使用して、xamTileManager のタイル レイアウトを復元します

レイアウトの保存

レイアウトの詳細の保存

xamTileManager の状態とタイトルのレイアウトを保存するためには、 PersistenceManager クラスの静的 Save メソッドを起動する必要があります。Save メソッドのオーバーロードがあり、これは PersistenceSettings 引数を受け入れ、また保存/除外するプロパティを構成するために使用されます。保持メソッドは、後で保持ロケーションに保存できる MemoryStream オブジェクトを返します。

注: アプリケーションのアーキテクチャによって、MemoryStream (XML ファイルまたはデータベースなど) を保持する方法に関して様々なアプローチを選択することができます。「レイアウトの保存とロード」サンプルを参照して、レイアウトをバイト配列に保持する方法を確認してください。

レイアウト メソッド設定の保存

Save メソッドは PersistenceManager クラス経由でアクセスできます。

目的 このメソッドを使用: 以下の引数を設定…

PersistenceManager.Save

オブジェクト

PersistenceManager.Save

オブジェクト、設定

すべてのプロパティと共にレイアウトを保存

レイアウト例の保存は、すべてのコントロールのプロパティを保持する方法を示しています。

引数 タイプ

オブジェクト

プロパティが保存される DependencyObject

レイアウトを保存し、保存または無視するプロパティを構成

例の保存中にレイアウト プロパティを含む/除外する は、保持フレームワークを構成して、コントロールの状態を保存するときに一部のプロパティを無視する方法を示します。

引数 タイプ

オブジェクト

プロパティが保存される DependencyObject

設定

プロパティを説明し、保存または無視される PersistenceSettings オブジェクト

レイアウトのロード

レイアウトの詳細のロード

xamTileManager の状態とタイトルのレイアウトをロードするためには、PersistenceManager クラスの静的 Load メソッドを起動する必要があります。また、PersistenceSettings クラスのインスタンスを引数として受け入れる Load メソッドのオーバーロードがあります。PersistenceSettings インスタンスを使用して、レイアウト内で保存または無視するプロパティを構成します。Save メソッドから返されたデータは Load メソッドに提供され (Stream オブジェクトとして)、コントロールの状態を復元します。

レイアウト メソッド設定のロード

Load メソッドは PersistenceManager クラス経由でアクセスできます。

目的 このメソッドを使用: 以下の引数を設定…

PersistenceManager.Load

オブジェクト

すべてのプロパティと共にレイアウトをロード

レイアウト例のロードは、すべてのコントロールのプロパティをロードする方法を示しています。

引数 タイプ

オブジェクト

プロパティが復元される DependencyObject

コード例

例の概要

以下の表は、以下に提供されたコード例を示しています。

説明

指定されたコントロールのすべてのプロパティの保存方法を示します。

コントロールの状態の保存方法と、無視するプロパティの指定方法を示します。

指定されたコントロールのすべての保存されたプロパティの復元方法を示します。

コード例: レイアウトの保存

例の詳細

以下のコードは、以下のパラメーターと共に Save メソッドを使用して Save コントロールの状態を保存する方法を示しています。

  • 状態が保持されるコントロール

Visual Basic の場合:

Dim memoryStream As MemoryStream =
    PersistenceManager.Save(xamTileManager1)

C# の場合:

MemoryStream memoryStream =
    PersistenceManager.Save(xamTileManager1);

コード例: 保存中にレイアウト プロパティを含める/除外する

例の詳細

以下のコードは、以下のパラメーターと共に Save メソッドを使用して Save コントロールの状態を保存する方法を示しています。

  • 状態が保持されるコントロール

  • 無視するプロパティを指定する、Persistence Settings オブジェクト

Visual Basic の場合:

' Persistence Settings オブジェクトを作成します
Dim settings As New PersistenceSettings()
' 無視するものを除くすべてのプロパティを保存します
settings.SavePersistenceOptions =
    Persistence.Primitives.PersistenceOption.AllButIgnored
'  「Left」プロパティを無視されるものとして追加します
Dim prop1 As New PropertyNamePersistenceInfo() With { _
    .PropertyName = "Left" _
}
settings.IgnorePropertySettings.Add(prop1)
'  「Top」プロパティを無視されるものとして追加します
Dim prop2 As New PropertyNamePersistenceInfo() With { _
    .PropertyName = "Top" _
}
settings.IgnorePropertySettings.Add(prop2)
' コントロールのプロパティをメモリ ストリームに保存します
Dim memoryStream As MemoryStream =
    PersistenceManager.Save(xamTileManager1, settings)

C# の場合:

// Persistence Settings オブジェクトを作成します
PersistenceSettings settings = new PersistenceSettings();
// 無視するものを除くすべてのプロパティを保存します
settings.SavePersistenceOptions =
    Persistence.Primitives.PersistenceOption.AllButIgnored;
//  「Left」プロパティを無視されるものとして追加します
PropertyNamePersistenceInfo prop1 = new PropertyNamePersistenceInfo
{
    PropertyName = "Left"
};
settings.IgnorePropertySettings.Add(prop1);
//  「Top」プロパティを無視されるものとして追加します
PropertyNamePersistenceInfo prop2 = new PropertyNamePersistenceInfo
{
    PropertyName = "Top"
};
settings.IgnorePropertySettings.Add(prop2);
// コントロールのプロパティをメモリ ストリームに保存します
MemoryStream memoryStream =
    PersistenceManager.Save(xamTileManager1, settings);

コード例: レイアウトのロード

例の詳細

以下のコードは、以下のパラメーターと共に Load メソッドを使用して Load コントロールの状態を保存する方法を示しています。

  • 状態が復元されるコントロール

Visual Basic の場合:

PersistenceManager.Load(xamTileManager1, memoryStream)

C# の場合:

PersistenceManager.Load(xamTileManager1, memoryStream);