質問編集履歴

1

質問内容の変更

2018/03/23 16:07

投稿

ElecDove
ElecDove

スコア254

test CHANGED
@@ -1 +1 @@
1
- DataGrid UpdateSourceTriggerをExplicitにした時のUpdateSourceの呼び出し方
1
+ DataGrid UpdateSourceTriggerをExplicitにした
test CHANGED
@@ -1,12 +1,18 @@
1
1
  いつもお世話になります。
2
+
3
+
4
+
5
+ 質問内容を変更しました。
6
+
7
+
8
+
9
+ DataGridでコントロールの値の変更を任意のタイミングでバインディング元へ反映させたい場合はどうすればよいでしょうか
2
10
 
3
11
 
4
12
 
5
13
 
6
14
 
7
- WPFDataGridで、コントロルの値の変更を任意のタイミングバインディング元へ反映させたいと思い、ItemsSourceにUpdateSourceTrigger=Explicit設定したのですが、どのようにしてUpdateSourceを呼び出せばよいのかわかりせん
15
+ ようなソUpdateSourceを呼び出さなくても値反映されてしいました
8
-
9
-
10
16
 
11
17
  ```XAML
12
18
 
@@ -24,23 +30,7 @@
24
30
 
25
31
  ```
26
32
 
27
- このようなDataGridがあり、別に設けたボタンのイベントの中に
28
-
29
-
30
-
31
- ```C#
32
-
33
- BindingExpression be = DataGrid_A.GetBindingExpression(DataGrid.ItemsSourceProperty);
33
+ また、`DataGridTextColumn`のほうに`UpdateSourceTrigger=Explicit`を設定した場合も同様でした。
34
-
35
- be.UpdateSource();
36
-
37
- ```
38
-
39
-
40
-
41
- という風に見様見真似で書いてみたのですが、
42
-
43
- 実際に実行してみるとbeがnullになります。
44
34
 
45
35
 
46
36
 
@@ -74,4 +64,84 @@
74
64
 
75
65
 
76
66
 
77
- よろしくお願いします。
67
+ よろしくお願いいたします。
68
+
69
+
70
+
71
+
72
+
73
+ ---
74
+
75
+ ※以下は編集前の質問内容です
76
+
77
+ ~~
78
+
79
+ WPFのDataGridで、コントロールの値の変更を任意のタイミングでバインディング元へ反映させたいと思い、ItemsSourceにUpdateSourceTrigger=Explicitを設定したのですが、どのようにしてUpdateSourceを呼び出せばよいのかがわかりません。
80
+
81
+ ~~
82
+
83
+ ```XAML
84
+
85
+ <DataGrid Margin="10,40,10,40" ItemsSource="{Binding UpdateSourceTrigger=Explicit}" AutoGenerateColumns="False" x:Name="DataGrid_A">
86
+
87
+ <DataGrid.Columns>
88
+
89
+ <DataGridTextColumn Header="AAA" Binding="{Binding aaa, Mode=TwoWay}" Width="150"/>
90
+
91
+ <DataGridTextColumn Header="BBB" Binding="{Binding bbb, Mode=TwoWay}" Width="100"/>
92
+
93
+ </DataGrid.Columns>
94
+
95
+ </DataGrid>
96
+
97
+ ```
98
+
99
+ ~~このようなDataGridがあり、別に設けたボタンのイベントの中に~~
100
+
101
+
102
+
103
+ ```C#
104
+
105
+ BindingExpression be = DataGrid_A.GetBindingExpression(DataGrid.ItemsSourceProperty);
106
+
107
+ be.UpdateSource();
108
+
109
+ ```
110
+
111
+
112
+
113
+ ~~という風に見様見真似で書いてみたのですが、実際に実行してみるとbeがnullになります。~~
114
+
115
+
116
+
117
+ ~~ItemsSourceにセットされているのは、~~
118
+
119
+ ~~`ObservableCollection<Hoge>`でして、~~
120
+
121
+ ~~`Hoge`は~~
122
+
123
+ ~~`public string aaa, public string bbb`の二つのプロパティを持っています。~~
124
+
125
+
126
+
127
+ ~~具体的にはこんな感じです。~~
128
+
129
+ ```C#
130
+
131
+ Windowのコンストラクタの中で
132
+
133
+ {
134
+
135
+ InitializeComponent();
136
+
137
+ var Fuga = 「ObservableCollection<Hoge>」(イメージ)
138
+
139
+ DataGrid_A.ItemsSource = Fuga;
140
+
141
+ }
142
+
143
+ ```
144
+
145
+
146
+
147
+ ~~よろしくお願いします。~~