libro
www.tuyano.com
C#ではじめるWindows 8アプリ開発入門

設定情報とデータの保存 (2/5)

作成:2014-03-01 10:49
更新:2014-03-01 10:49

■設定情報を保管する

では、実際に簡単な設定情報を保管してみましょう。サンプルとして、テキストボックスを1つ、ボタンを2つもったMainPage.Xamlを作成してみました(下のリスト欄参照)。

そして、MainPage.Xamp.csMainPageクラスに、下に掲載した2つのメソッドを追記します。

このサンプルでは、テキストボックスに書いたテキストを「Save」ボタンで保存し、「Load」ボタンで読み込みます。

では、設定の読み書きをしている部分を見てみましょう。こんな感じで行っていますね。

●テキストの保存
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values["textdata"] = textBox1.Text;

●保存したテキストの取得
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
textBox1.Text = localSettings.Values["textdata"] as string;

いずれも、まずApplicationData.Current.LocalSettingsからApplicationDataContainerインスタンスを取得します。そして特定のキー(ここでは"textdata")を指定してValuesから値を取り出したり、保管したりしています。取り出す際には、as stringをつけてテキストにキャストしておきます。これを忘れるとトラブルのもとになりますから注意しましょう。

後は、特に問題らしい部分もありません。設定情報の読み書きは、実に簡単なのです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※MainPage.Xamlの内容

<Page
    x:Class="App1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="0,0,0,0">
        <TextBlock x:Name="textblock1" HorizontalAlignment="Left" Margin="113,78,0,0" 
                   TextWrapping="Wrap" Text="Win 8 App" VerticalAlignment="Top" 
                   Height="84" Width="1052" FontSize="48"/>
        <TextBox x:Name="textBox1" HorizontalAlignment="Left" Height="218" Margin="105,183,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="493" AcceptsReturn="True"/>
        <Button Content="Save" HorizontalAlignment="Left" Height="55" Margin="104,425,0,0" VerticalAlignment="Top" Width="217" Click="Button1_Click"/>
        <Button Content="Load" HorizontalAlignment="Left" Height="53" Margin="384,426,0,0" VerticalAlignment="Top" Width="214" Click="Button2_Click"/>


    </Grid>
</Page>


※MainPage.Xaml.csのMainPageクラスに追記するメソッド

        private async void Button1_Click(object sender, RoutedEventArgs e)
        {
            ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
            localSettings.Values["textdata"] = textBox1.Text;
            MessageDialog dlog = new MessageDialog("保存しました。");
            await dlog.ShowAsync();
        }

        private void Button2_Click(object sender, RoutedEventArgs e)
        {
            ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
            textBox1.Text = localSettings.Values["textdata"] as string;
        }

※関連コンテンツ

「C#ではじめるWindows 8アプリ開発入門」に戻る