[UWP][全般] 複数のデータを簡易読み書きする

スポンサーリンク

前回の「アプリデータを簡易読み書きする」では、単一のデータのみの読み書きを行いました。

今回は1つのキーで複数のデータを管理(読み書き)する方法を見ていきます。

複数のデータのことをコンポジット値と呼びます。コンポジット値を作成するには、はじめにApplicationDataCompositeValueオブジェクトを生成します。ここで作成したオブジェクトは、オブジェクト名[“キー名”] という書式で使用します。

以下にコンポジット値を読み書きするC#のコードを示します。MainPage.xamlにはボタンとテキストボックスを2つずつ配置しています。

データの読み込み側では、読み取ったデータが存在しない場合を考慮して、if文でnulかどうかを判定しています。nullでない場合にデータの読み取りを行っています。

書き込み側では、はじめにコンポジット値を作成しています、この例では2つのTextBoxから読み取った値をキー「value1」と「value2」それぞれ代入した後、前回の記事で説明した手法で保存をしています。

public sealed partial class MainPage : Page
{
    Windows.Storage.ApplicationDataContainer _localSettings =
        Windows.Storage.ApplicationData.Current.LocalSettings;

    public MainPage()
    {
        this.InitializeComponent();
    }


    private void btnGetData_Click(object sender, RoutedEventArgs e)
    {
        Windows.Storage.ApplicationDataCompositeValue composite =
            (Windows.Storage.ApplicationDataCompositeValue)_localSettings.Values["MyData"];

        if (composite == null)
        {
            // データが存在しない場合
        }
        else
        {
            // コンポジット値の読み込み
            txtData.Text = composite["value1"].ToString();
            txtData2.Text = composite["value2"].ToString();
        }

    }

    private void btnDataSave_Click(object sender, RoutedEventArgs e)
    {
        Windows.Storage.ApplicationDataCompositeValue composite =
             new Windows.Storage.ApplicationDataCompositeValue();

        // コンポジット値の作成
        composite["value1"] = txtData.Text;
        composite["value2"] = txtData2.Text;

        // コンポジット値の書き込み
        _localSettings.Values["MyData"] = composite;
    }
}

実行例

 

コメント

タイトルとURLをコピーしました