バージョン

保持グループ

始める前に

Infragistics Persistence Framework™ はひとつまたは複数のグループで複数のコントロールの設定を統合できます。この方法で、1 つのデータ ストアにアプリケーションの状態を保存する、または複数のコントロールの設定をグループ内で結合することが可能です。

Note

注: 1 つの Persistence Group を保存し、同じ数と同じ順序のコントロール タイプである別の PersistenceGroup へ読み込むことができます。さらに、複数のコントロールの設定をひとつのグループに保存し、それらの設定を別のコントロールのグループに適用することができます。

達成すること

このトピックは、PersistenceGroup オブジェクトを作成および使用して、ひとつのグループで 2 つの TextBox コンポーネント設定を結合する方法を示します。

次の手順を実行します

  1. WPF アプリケーション プロジェクトを作成します。

  2. 以下の NuGet パッケージをアプリケーションに追加します。

    • Infragistics.WPF.Persistence

    NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。

  1. UserControl タグの中に以下の名前空間を追加します。

XAML の場合:

xmlns:ig="http://schemas.infragistics.com/xaml"
  1. ページで UserControl リソース コレクションを作成して PersistenceGroup を定義します。

    • x:Key 属性を保持グループの名前を付けて追加します。この名前はリソース ディクショナリでリソースとしてグループを一意に識別します。

    • アプリケーションが必要な数だけグループを追加できます。唯一必要なのは、一意の x:Key 属性を保たせなければならないことです。

    • この例で、コントロール設定を結合するために保持グループをひとつだけ追加します。

XAML の場合:

<UserControl.Resources>
    <ig:PersistenceGroup x:Key="CPF_Group" />
</UserControl.Resources>
  1. Grid コンテナーを作成します。

XAML の場合:

<Grid x:Name="LayoutRoot">
   <Grid.RowDefinitions>
      <RowDefinition Height="*"/>
      <RowDefinition Height="Auto"/>
   </Grid.RowDefinitions>
   <!-- さらに要素を追加します -->
  1. ページで 2 つの TextBox コントロールを追加し、PersistenceGroup 添付プロパティを使用して、UserControl リソース ディクショナリで静的なリソースとして定義されたひとつの保持グループにこれらのコントロールが属していることを指定します。

XAML の場合:

<StackPanel Grid.Row="0">
    <TextBox x:Name="txtFirstName" igPersistence:PersistenceManager.PersistenceGroup="{StaticResource CPF_Group}" />
    <TextBox x:Name="txtLastName" igPersistence:PersistenceManager.PersistenceGroup="{StaticResource CPF_Group}" />
</StackPanel>
  1. 保存とロードのために 2 つのボタンを追加します。

XAML の場合:

<StackPanel Orientation="Horizontal" Grid.Row="1">
    <Button Content="Save" x:Name="BtnSave" Click="BtnSave_Click" Height="22" Width="100" />
    <Button Content="Load" x:Name="BtnLoad" Click="BtnLoad_Click" Height="22" Width="100" />
</StackPanel>
  1. 以下の using/Import のディレクティブを追加します。これでメンバーの完全に記述された名前を入力する必要がなくなります。

Visual Basic の場合:

Imports Infragistics.Persistence
Imports System.IO

C# の場合:

using Infragistics.Persistence;
using System.IO;
  1. いくつかのプライベート メンバーを定義します。

Visual Basic の場合:

' XAML UserControl Resources で定義された PersistenceGroup の名前
Private Const pGroup As String = "CPF_Group"
Private memoryStream As New MemoryStream()

' 同時に保存およびロードされるコントロールの設定をグループ化する PersistenceGroup オブジェクトを作成します
Private persistenceGroup As New PersistenceGroup()

C# の場合:

// XAML UserControl Resources で定義された PersistenceGroup の名前。
private const string pGroup = "CPF_Group";
private MemoryStream memoryStream = new MemoryStream();

// 同時に保存およびロードされるコントロールの設定をグループ化する PersistenceGroup オブジェクトを作成します
private PersistenceGroup persistenceGroup = new PersistenceGroup();
  1. InitializeComponent() メソッドの後でページ コンストラクターに以下を追加します

Visual Basic の場合:

' ResourceDictionary からリソースとして XAML PersistenceGroup ですでに定義されています
persistenceGroup = TryCast(Me.Resources(pGroup), PersistenceGroup)

C# の場合:

// ResourceDictionary からリソースとして XAML PersistenceGroup ですでに定義されています
persistenceGroup = this.Resources[pGroup] as PersistenceGroup;
  1. ボタンの Click イベントを処理して保持グループを保存およびロードします。

Visual Basic の場合:

Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    ' MemoryStream オブジェクトに PersistenceGroup を保存します
    memoryStream = PersistenceManager.Save(persistenceGroup)
End Sub
Private Sub BtnLoad_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
   memoryStream.Position = 0
   ' MemoryStream オブジェクトから PersistenceGroup をロードします
   PersistenceManager.Load(persistenceGroup, memoryStream)
End Subs

C# の場合:

private void BtnSave_Click(object sender, RoutedEventArgs e)
{
   // MemoryStream オブジェクトに PersistenceGroup を保存します
   memoryStream = PersistenceManager.Save(persistenceGroup);
}

private void BtnLoad_Click(object sender, RoutedEventArgs e)
{
   memoryStream.Position = 0;
   // MemoryStream オブジェクトから PersistenceGroup をロードします
   PersistenceManager.Load(persistenceGroup, memoryStream);
}
  1. アプリケーションを保存して実行します。画面上に 2 つの TextBox コントロールがあります。同じ値をタイプし、それらの構成を保存してからそれらに新しい値をタイプします。次に [ロード] ボタンをクリックします。保存された変更が復元されます。