回答編集履歴

3

追記

2021/07/19 07:50

投稿

退会済みユーザー
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  dt.Columns.Add("Col3", typeof(string));
16
16
 
17
- dt.Columns.Add("Col123", typeof(string), "Col1 + Col2 + Col3");
17
+ dt.Columns.Add("Col123", typeof(string), "Col1 + ',' + Col2 + ',' + Col3");
18
18
 
19
19
 
20
20
 
@@ -34,8 +34,54 @@
34
34
 
35
35
  ```
36
36
 
37
- ![実行結果](7e289337a41546b393d7ad483a704920.png)
37
+ ![実行結果](c3ce9cb3f69d6c64591e1a443f539187.png)
38
38
 
39
39
 
40
40
 
41
41
  更新もするなら、結合したデータを入れた列を追加するしかないんじゃないですかね?
42
+
43
+ CellValidating, RowValidatingイベント辺りで入力値を検証してDataTableに書き戻せば良さそうな気がします。
44
+
45
+ ```C#
46
+
47
+ private void button1_Click(object sender, EventArgs e)
48
+
49
+ {
50
+
51
+ var dt = new DataTable();
52
+
53
+ dt.Columns.Add("Col1", typeof(string));
54
+
55
+ dt.Columns.Add("Col2", typeof(string));
56
+
57
+ dt.Columns.Add("Col3", typeof(string));
58
+
59
+ dt.Columns.Add("Col123", typeof(string));
60
+
61
+
62
+
63
+ dt.Rows.Add(new string[] { "A", "B", "C" });
64
+
65
+
66
+
67
+ foreach(var row in dt.AsEnumerable())
68
+
69
+ {
70
+
71
+ row["Col123"] = $"{row["Col1"]},{row["Col2"]},{row["Col3"]}";
72
+
73
+ }
74
+
75
+
76
+
77
+ dataGridView1.AutoGenerateColumns = false;
78
+
79
+ dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { DataPropertyName = "Col1" });
80
+
81
+ dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { DataPropertyName = "Col123" });
82
+
83
+ dataGridView1.DataSource = dt;
84
+
85
+ }
86
+
87
+ ```

2

修正

2021/07/19 07:50

投稿

退会済みユーザー
test CHANGED
@@ -38,4 +38,4 @@
38
38
 
39
39
 
40
40
 
41
- 更新もするなら、あらかじめ結合したデータを入れた列を作っておくしかないんじゃないですかね?
41
+ 更新もするなら、結合したデータを入れた列を追加するしかないんじゃないですかね?

1

追記

2021/07/19 06:39

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 計算用の列を作成してみてはどうしょう
1
+ 表示だけであれば、計算用の列を作成すれば可能
2
2
 
3
3
  ```C#
4
4
 
@@ -35,3 +35,7 @@
35
35
  ```
36
36
 
37
37
  ![実行結果](7e289337a41546b393d7ad483a704920.png)
38
+
39
+
40
+
41
+ 更新もするなら、あらかじめ結合したデータを入れた列を作っておくしかないんじゃないですかね?