回答編集履歴
5
脱字
test
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
0. 同様に`Model.Prop`と`ListBox`でデータバインディング
|
72
72
|
|
73
|
-
0. `GroupBox`クリックイベントで`Model.Prop`の値を更新する処理を実装する
|
73
|
+
0. `GroupBox`のクリックイベントで`Model.Prop`の値を更新する処理を実装する
|
74
74
|
|
75
75
|
|
76
76
|
|
4
文章の修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
データバインディング(`Data Binding`)を使い、「画面のレイアウト」と「アプリケーションで取り扱うデータ」を**疎結合**にする(役割を分離する)ことです。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -12,9 +12,9 @@
|
|
12
12
|
|
13
13
|
もっとざっくり言えば、「モデル(データ)とビュー(画面)を紐づける仕組み」です。
|
14
14
|
|
15
|
-
※MVVMアーキテクチャにおいては、「ビューモデルとビューを紐づける仕組み」です。
|
15
|
+
※MVVMアーキテクチャにおいては、「ビューモデル(`ViewModel`)とビュー(`View`)を紐づける仕組み」です。
|
16
16
|
|
17
|
-
※以後、「モデル」と「ビュー」で説明をします。
|
17
|
+
※以後、「モデル(`Model`)」と「ビュー(`View`)」で説明をします。
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
を
|
49
|
+
を行う必要が無くなります。
|
50
50
|
|
51
51
|
|
52
52
|
|
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
実際に下記のような流れで実装してください。
|
61
|
+
実際に、下記のような流れで実装してください。
|
62
62
|
|
63
63
|
|
64
64
|
|
@@ -74,4 +74,4 @@
|
|
74
74
|
|
75
75
|
|
76
76
|
|
77
|
-
これで、GroupBox
|
77
|
+
これで、`GroupBox`をクリックした時に、`ListBox`に表示する内容を変更することが出来るはずです。
|
3
文書構成を変更(伝えていることは同じなはず)
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# 理想的な対処方法について
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
|
41
|
+
# 質問のアプリケーションを疎結合にしたらどうなるか
|
42
42
|
|
43
43
|
|
44
44
|
|
@@ -48,7 +48,17 @@
|
|
48
48
|
|
49
49
|
をやる必要が無くなります。
|
50
50
|
|
51
|
+
|
52
|
+
|
53
|
+
> コントロールの追加、削除があった時に修正箇所
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
も非常に少なくなります。
|
58
|
+
|
59
|
+
|
60
|
+
|
51
|
-
|
61
|
+
実際に下記のような流れで実装してください。
|
52
62
|
|
53
63
|
|
54
64
|
|
@@ -61,3 +71,7 @@
|
|
61
71
|
0. 同様に`Model.Prop`と`ListBox`でデータバインディング
|
62
72
|
|
63
73
|
0. `GroupBox`クリックイベントで`Model.Prop`の値を更新する処理を実装する
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
これで、GroupBox をクリックした時に、ListBox に表示する内容を変更することが出来るはずです。
|
2
文章の修正
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
をやる必要が無くなります。
|
50
50
|
|
51
|
-
代わりに、下記のような流れで作って
|
51
|
+
代わりに、下記のような流れで作ると「ListBox に表示される内容」はデータバインディングによって変更され、かつ疎結合な実装になります。
|
52
52
|
|
53
53
|
|
54
54
|
|
1
プロパティ名に数字を使うのは、よく考えたらサンプルでも嫌だなと思ったので消しました。
test
CHANGED
@@ -56,8 +56,8 @@
|
|
56
56
|
|
57
57
|
0. `Model`を`Form`に参照させる
|
58
58
|
|
59
|
-
0. `Model`の特定のプロパティ(仮名:`Prop
|
59
|
+
0. `Model`の特定のプロパティ(仮名:`Prop`)と`GroupBox`でデータバインディング
|
60
60
|
|
61
|
-
0. 同様に`Model.Prop
|
61
|
+
0. 同様に`Model.Prop`と`ListBox`でデータバインディング
|
62
62
|
|
63
|
-
0. `GroupBox`クリックイベントで`Model.Prop
|
63
|
+
0. `GroupBox`クリックイベントで`Model.Prop`の値を更新する処理を実装する
|