[.NetMAUI] MAUIにどこからでも保存できる場所があるって知ってた? [Preferences]

Preferencesとは

できること

キーとあわせてデータを保存することができます.
保存できるデータ型は以下の通りです.

  • Boolean
  • Double
  • Int32
  • Single
  • Int64
  • String
  • DateTime

使いどき

一度データを保存すればどのページからでも取り出せるため,ページをまたいで記録しておきたいデータがあるときに使いやすいと思います.例えば,ページの設定やユーザーに関するデータなどです.
何度も参照したいデータなどを,保存するのもおすすめです.

今回紹介すること

今回は,Preferencesの簡単な使い方をコードの例を用いてご紹介させていただきます.

使い方

値の保存

Preferencesに値を保存するには,Preferences.Default.Set("キー", "値")と記述します.
保存した値を取り出すときは,Preferences.Default.Get("キー", "キーがないときの値")と記述します.

具体例

実際に値が保存されているのか確認してみます.ページ1でデータを保存し,ページ2でデータを取り出すコードをつくって確認します.(XamlのContentPageは省略しています.両ページとも初期の設定から変えていないためです.)

<!--Page1-->
<VerticalStackLayout>
    <Button Text="GoNextPage"
        Clicked="Button_Clicked"/>
    <Entry Text="{Binding inputData}"
       TextChanged="Entry_TextChanged"/>
</VerticalStackLayout>
public partial class Page1 : ContentPage
{
    public Page1()
    {
    InitializeComponent();
    }

    private async void Button_Clicked(object sender, EventArgs e)
    {
        await Navigation.PushAsync(new Page2());
    }

    private void Entry_TextChanged(object sender, TextChangedEventArgs e)
    {
        var entry = (Entry)sender;
        Preferences.Default.Set("entryData", entry.Text);

    }
}

ページ1にはボタンと入力欄があります.入力欄に入れた内容がPreferencesに保存されます.ボタンを押すと次ページに移動できます.

<!--Page2-->
    <VerticalStackLayout>
        <Label  x:Name="label"/>
    </VerticalStackLayout>
public partial class Page2 : ContentPage
{
    public Page2()
    {
        InitializeComponent();

        label.Text = Preferences.Default.Get("entryData", "NoData");
    }
}

ページ2では,値を取り出して表示させています.

実際に動かしてみます.

データを削除するにはPreferences.Default.Remove("キー名")で削除することが出来ます.

保存したデータは基本,アプリが終わった後に永続的には保存されません.その点も注意して使う必要があります.

まとめ

Preferencesで簡易にデータ保存,取り出しができます.MAUIで作品をつくるときはぜひこれを用いてみてください.

参考

「Preferences – .NET MAUI | Microsoft Learn」https://learn.microsoft.com/ja-jp/dotnet/maui/platform-integration/storage/preferences?view=net-maui-7.0&tabs=windows

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