質問するログイン新規登録

回答編集履歴

3

XxxConfig.Instance メソッド→XxxConfig.Instanceアクセサ

2018/06/25 13:55

投稿

toydev
toydev

スコア297

answer CHANGED
@@ -13,7 +13,7 @@
13
13
  設定系ViewModelをシングルトンにするのが許容できるのであれば、個別画面側のXAMLにObjectDataProviderで設定系ViewModelのシングルトンをリソースとして定義し、Bindingできます。
14
14
  以下みたいな感じです。
15
15
 
16
- - リソース定義(XxxConfigInstance メソッドでシングルトンが参照できる前提)
16
+ - リソース定義(XxxConfig.Instance アクセサでシングルトンが参照できる前提)
17
17
 
18
18
  ```C#
19
19
  <ObjectDataProvider x:Key="XxxConfig" ObjectInstance="{x:Static Member=local:XxxConfig.Instance}" />

2

Prismを使う前に使っていた方法を思い出したので本文に追記します。

2018/06/25 13:55

投稿

toydev
toydev

スコア297

answer CHANGED
@@ -3,10 +3,25 @@
3
3
 
4
4
  個別画面の ViewModel に設定情報のような共通 ViewModel の参照を設定する具体的な方法としては MVVM のフレームワークである Prism の DI コンテナを使用することを個人的にはお勧めします。
5
5
 
6
- 以下 Prism ってんぞ?という方向け説明で。こページDI コンテナ辺りの説明読んください
6
+ また、単に設定値の表示だけではなく、設定変更後に何らか計算をる必要がある場合、個別画面毎 ViewModel で設定側ViewModel変更監視することがきます
7
7
 
8
- * [MVVM フレームワーク Prism 全体概観](https://qiita.com/toydev/items/cf1bb4b519e7e2453d46)
8
+ ViewModel の監視は ReactiveProperty というライブラリを使うがお勧めです。
9
9
 
10
- また、単に設定値の表示だけでく、設定変更後に何らかの計算をする必要がある場合、個別画面毎の ViewModel で設定側の ViewModel の変更を監視することができます。
10
+ ##### (追記)Binding だけで行う簡易的方法
11
11
 
12
- ViewModel の監視は ReactiveProperty といライブラリ使うがお勧めです。
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

参照ページの読むべき個所を明記した。

2018/06/25 13:49

投稿

toydev
toydev

スコア297

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