WinRTでアプリの設定保存するには ApplicationData.Current.RoamingSettings.Values
あたりに保存したりすると、勝手に同期されて便利だったりします。ちなみにRoamingSttings
をLocalSettings
に変えると同期されない設定が書けます。
これの何がいいって、XMLで自前で管理しなくていいところです。
で、ふだんはこのクラスをラップしてこんなのを使ってます。
これを、こんな感じで継承して使うと
public class AppConfig : AppConfigBase<AppConfig> { public bool Checked1 { get { return GetValue(true); } set { SetValue(value); OnPropertyChanged(); } } [LocalValue] public string Text { get { return GetValue<string>(); } set { SetValue(value); OnPropertyChanged(); } } }
コードからこんな風に使うことが出来ます。
AppConfig.Instance.Checked1 = false; AppConfig.Instance.Text = "hoge";
で、これだとXAMLからシングルトンを叩けないので、こんなクラスを用意します。
public class XamlAppConfig { public AppConfig Instance { get { return AppConfig.Instance; } } }
あとはこれをXAMLに書いてBindingします。
<Grid> <Grid.Resources> <local:XamlAppConfig x:Key="AppConfig" /> </Grid.Resources> <Chkeckbox IsChecked="{Binding Source={StaticResource AppConfig},Path=Checked1,Mode=TwoWay}" /> <TextBox Text="{Binding Source={StaticResource AppConfig},Path=Text,Mode=TwoWay}" /> </Grid>
すると、値が変わると勝手に保存できて便利です。インテリセンスもきくし。
というのを普段使ってるんですが、みなさんどうしてますか?