質問編集履歴

3

コードの修正

2018/11/01 08:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -142,19 +142,77 @@
142
142
 
143
143
  }
144
144
 
145
+
146
+
147
+
148
+
149
+ ````
150
+
151
+
152
+
153
+ **PageA_Model.cs**
154
+
155
+
156
+
157
+ ```
158
+
145
- //オブジェの定義
159
+ //クラスの定義
146
-
160
+
147
- public class Setting
161
+ class Setting : INotifyPropertyChanged
148
162
 
149
163
  {
150
164
 
165
+
166
+
167
+ private string username_value;
168
+
151
- public string username { get; set; }
169
+ public string username
170
+
171
+ {
172
+
173
+ get { return username_value; }
174
+
175
+
176
+
177
+ set
178
+
179
+ {
180
+
181
+ username_value = value;
182
+
183
+ NotifyPropertyChanged("username");
184
+
185
+ }
186
+
187
+ }
188
+
189
+
190
+
191
+ public event PropertyChangedEventHandler PropertyChanged;
192
+
193
+ private void NotifyPropertyChanged(String info)
194
+
195
+ {
196
+
197
+ if (PropertyChanged != null)
198
+
199
+ {
200
+
201
+ PropertyChanged(this, new PropertyChangedEventArgs(info));
202
+
203
+ }
204
+
205
+ }
206
+
207
+
208
+
209
+
152
210
 
153
211
  }
154
212
 
155
-
156
-
157
- ````
213
+ ```
214
+
215
+
158
216
 
159
217
 
160
218
 

2

コードの修正

2018/11/01 08:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,33 @@
8
8
 
9
9
  ですがページA→ページB→ページAと移動するとページAのテキストボックスに入力されていた値が保持されません。
10
10
 
11
- ページAのkeepaliveをTrueにすればいいのかと思ったのが解決できませんでした。
12
11
 
12
+
13
- プロパティに値を保存しそれをロード時に読み込むようにすればいのですが、それ以外の方法で詳しい方いしたら値保持る方法をご教示ください
13
+ オブジェクトのプロパティをTextBox割り当います。
14
14
 
15
15
 
16
16
 
17
+ ①PageAを読み込むとSettingクラスのオブジェクトsetting_classが生成。
18
+
19
+ ②PageAのTextBoxに値が入力される
20
+
21
+ ③BindingしてあるSettingクラスのusernameプロパティが入力された値になる
22
+
23
+ ④違いページに移動
24
+
25
+ ⑤再びPageAに戻る
26
+
17
- ※値を保存するためには保存ボンすなどを作成して保存する必要ますがページ遷移する度に値を保存し読み込むのではなくもう少しクールな方法がないかと思い「そ以外の方法」という表現をしました。
27
+ ⑥PageAのコンストラクでSettingクラスのオブジェクトsetting_classテキストボックスに割
18
28
 
19
29
 
20
30
 
31
+ これでページ遷移して値が保存されることを実現できるかと思ったのですがうまくいかないです。
32
+
33
+ 原因分かる方いましたらご協力をお願いします。
34
+
35
+
36
+
21
- MainWindows.xamlの全体像はこんな感じです。
37
+ **MainWindows.xaml**
22
38
 
23
39
  ```
24
40
 
@@ -93,3 +109,63 @@
93
109
 
94
110
 
95
111
  ```
112
+
113
+
114
+
115
+ **PageA**
116
+
117
+ ```
118
+
119
+ public partial class PageA : Page
120
+
121
+ {
122
+
123
+
124
+
125
+ public PageA()
126
+
127
+ {
128
+
129
+ InitializeComponent();
130
+
131
+ //TextBoxにオブジェクトのプロパティを割り当てる
132
+
133
+ TextBox.DataContext = setting_class;
134
+
135
+
136
+
137
+ }
138
+
139
+ //オブジェクトの生成
140
+
141
+ Setting setting_class = new Setting { };
142
+
143
+ }
144
+
145
+ //オブジェクトの定義
146
+
147
+ public class Setting
148
+
149
+ {
150
+
151
+ public string username { get; set; }
152
+
153
+ }
154
+
155
+
156
+
157
+ ````
158
+
159
+
160
+
161
+ **PageA.xaml**
162
+
163
+
164
+
165
+ ```
166
+
167
+ <TextBox x:Name="TextBox" Text="{Binding username}"> </TextBox>
168
+
169
+
170
+
171
+ ```

1

追記修正依頼にのっとって修正

2018/11/01 07:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,8 @@
13
13
  プロパティに値を保存してそれをロード時に読み込むようにすればいいのですが、それ以外の方法で詳しい方いましたら値保持する方法をご教示ください。
14
14
 
15
15
 
16
+
17
+ ※値を保存するためには保存ボタンすなどを作成して保存する必要がありますがページ遷移する度に値を保存して読み込むのではなくもう少しクールな方法がないかと思い「それ以外の方法」という表現をしました。
16
18
 
17
19
 
18
20