設定系の情報は共通の ViewModel に分けて定義し、個別画面毎の ViewModel にその参照を持たせる形に私はしています。
同じ1つの ViewModel を見ることによって設定画面での変更が即座に反映できるというわけです!(逆に個別画面側で変更した内容を設定画面に即座に反映することもできる)。
個別画面の ViewModel に設定情報のような共通 ViewModel の参照を設定する具体的な方法としては MVVM のフレームワークである Prism の DI コンテナを使用することを個人的にはお勧めします。
また、単に設定値の表示だけではなく、設定変更後に何らかの計算をする必要がある場合、個別画面毎の ViewModel で設定側の ViewModel の変更を監視することができます。
ViewModel の監視は ReactiveProperty というライブラリを使うのがお勧めです。
(追記)Binding だけで行う簡易的な方法
過去に使っていた Binding だけで行う簡易的な方法を思い出したので追記します。
設定系ViewModelをシングルトンにするのが許容できるのであれば、個別画面側のXAMLにObjectDataProviderで設定系ViewModelのシングルトンをリソースとして定義し、Bindingできます。
以下みたいな感じです。
- リソース定義(XxxConfig.Instance アクセサでシングルトンが参照できる前提)
C#
1<ObjectDataProvider x:Key="XxxConfig" ObjectInstance="{x:Static Member=local:XxxConfig.Instance}" />
XML
1<ComboBox SelectedValue="{Binding Source={StaticResource XxxConfig}, Path=ConfigProperty1}">
2 <!-- ... -->
3</ComboBox>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/25 05:41
2018/06/25 13:53 編集
2018/06/29 05:57
2018/06/29 16:38 編集
2018/07/01 01:44
2018/07/01 14:43
2018/07/01 15:02
2018/07/01 23:20