回答編集履歴
3
XxxConfig.Instance メソッド→XxxConfig.Instanceアクセサ
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
設定系ViewModelをシングルトンにするのが許容できるのであれば、個別画面側のXAMLにObjectDataProviderで設定系ViewModelのシングルトンをリソースとして定義し、Bindingできます。
|
14
14
|
以下みたいな感じです。
|
15
15
|
|
16
|
-
- リソース定義(
|
16
|
+
- リソース定義(XxxConfig.Instance アクセサでシングルトンが参照できる前提)
|
17
17
|
|
18
18
|
```C#
|
19
19
|
<ObjectDataProvider x:Key="XxxConfig" ObjectInstance="{x:Static Member=local:XxxConfig.Instance}" />
|
2
Prismを使う前に使っていた方法を思い出したので本文に追記します。
answer
CHANGED
@@ -3,10 +3,25 @@
|
|
3
3
|
|
4
4
|
個別画面の ViewModel に設定情報のような共通 ViewModel の参照を設定する具体的な方法としては MVVM のフレームワークである Prism の DI コンテナを使用することを個人的にはお勧めします。
|
5
5
|
|
6
|
-
|
6
|
+
また、単に設定値の表示だけではなく、設定変更後に何らかの計算をする必要がある場合、個別画面毎の ViewModel で設定側の ViewModel の変更を監視することができます。
|
7
7
|
|
8
|
-
|
8
|
+
ViewModel の監視は ReactiveProperty というライブラリを使うのがお勧めです。
|
9
9
|
|
10
|
-
|
10
|
+
##### (追記)Binding だけで行う簡易的な方法
|
11
11
|
|
12
|
-
|
12
|
+
過去に使っていた Binding だけで行う簡易的な方法を思い出したので追記します。
|
13
|
+
設定系ViewModelをシングルトンにするのが許容できるのであれば、個別画面側のXAMLにObjectDataProviderで設定系ViewModelのシングルトンをリソースとして定義し、Bindingできます。
|
14
|
+
以下みたいな感じです。
|
15
|
+
|
16
|
+
- リソース定義(XxxConfigInstance メソッドでシングルトンが参照できる前提)
|
17
|
+
|
18
|
+
```C#
|
19
|
+
<ObjectDataProvider x:Key="XxxConfig" ObjectInstance="{x:Static Member=local:XxxConfig.Instance}" />
|
20
|
+
```
|
21
|
+
|
22
|
+
- リソースの参照個所 Binding
|
23
|
+
```XML
|
24
|
+
<ComboBox SelectedValue="{Binding Source={StaticResource XxxConfig}, Path=ConfigProperty1}">
|
25
|
+
<!-- ... -->
|
26
|
+
</ComboBox>
|
27
|
+
```
|
1
参照ページの読むべき個所を明記した。
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
個別画面の ViewModel に設定情報のような共通 ViewModel の参照を設定する具体的な方法としては MVVM のフレームワークである Prism の DI コンテナを使用することを個人的にはお勧めします。
|
5
5
|
|
6
|
-
以下は Prism ってなんぞ?という方向けの説明です。
|
6
|
+
以下は Prism ってなんぞ?という方向けの説明です。このページの DI コンテナの辺りの説明を読んでください。
|
7
7
|
|
8
8
|
* [MVVM フレームワーク Prism の全体概観](https://qiita.com/toydev/items/cf1bb4b519e7e2453d46)
|
9
9
|
|