回答編集履歴
1
追記
answer
CHANGED
@@ -224,4 +224,61 @@
|
|
224
224
|
|
225
225
|
結果は:
|
226
226
|
|
227
|
-

|
227
|
+

|
228
|
+
|
229
|
+
**【追記】**
|
230
|
+
|
231
|
+
YAmaGNZ さんの質問欄のコメントを見て思ったのですが、MainWindow のコンストラクタの CreateDataTable() で生成した DataTable は DataGrid に表示できているが、imp_button_Click メソッドで DataTable を再生成しても、DataGrid には再生成結果が反映されないという話なのかな?
|
232
|
+
|
233
|
+
そうであれば、上の回答の MainWindow.xaml.cs のコードで書いたように、コードで明示的に DataGrid.ItemsSource に DataTable.DefaultView を設定してみたらどうなりますか?
|
234
|
+
|
235
|
+
先の MainWindow.xaml.cs のコードに手を加えて、コンストラクタでダミーの DataTable を作ってそれを DataGrid に表示した後、Button クリックで DataTable を差し替えるということを試してみましたが、期待通りに差し替えることができます。お試しください。
|
236
|
+
|
237
|
+
```C#
|
238
|
+
// ・・・前略・・・
|
239
|
+
|
240
|
+
testDatabaseService = provider.GetRequiredService<TestDatabaseService>();
|
241
|
+
|
242
|
+
this.dataGrid2.ItemsSource = CreateDataTable().DefaultView;
|
243
|
+
}
|
244
|
+
|
245
|
+
private async void Button1_Click(object sender, RoutedEventArgs e)
|
246
|
+
{
|
247
|
+
var table = await testDatabaseService.GetDataTableAsync();
|
248
|
+
this.dataGrid2.ItemsSource = table.DefaultView;
|
249
|
+
}
|
250
|
+
|
251
|
+
private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
252
|
+
{
|
253
|
+
var list = await testDatabaseService.GetListAsync();
|
254
|
+
this.dataGrid.ItemsSource = list;
|
255
|
+
|
256
|
+
//var table = await testDatabaseService.GetDataTableAsync();
|
257
|
+
//this.dataGrid2.ItemsSource = table.DefaultView;
|
258
|
+
}
|
259
|
+
|
260
|
+
private DataTable CreateDataTable()
|
261
|
+
{
|
262
|
+
var table = new DataTable();
|
263
|
+
table.Columns.Add(new DataColumn("Num", typeof(int)));
|
264
|
+
table.Columns.Add(new DataColumn("Name", typeof(string)));
|
265
|
+
for (int i = 0; i < 3; i++)
|
266
|
+
{
|
267
|
+
var row = table.NewRow();
|
268
|
+
row["Num"] = i;
|
269
|
+
row["Name"] = $"Name{i}";
|
270
|
+
table.Rows.Add(row);
|
271
|
+
}
|
272
|
+
return table;
|
273
|
+
}
|
274
|
+
}
|
275
|
+
}
|
276
|
+
```
|
277
|
+
|
278
|
+
初期表示:
|
279
|
+
|
280
|
+

|
281
|
+
|
282
|
+
Button クリックで:
|
283
|
+
|
284
|
+

|