C#
パターン②: DataTable バインド時 — ソース側に足す
出典: C# DataGridView 行追加の3パターン — Rows.Add / DataSource バインド / BindingList の使い分け — 最短対処: コピペで動く3つの行追加 / パターン②: DataTable バインド時 — ソース側に足す
// DataSource にバインド済みの DataTable を取り出して足す
var dt = (DataTable)grid.DataSource;
dt.Rows.Add(3, "高橋"); // grid に自動で反映される
// DataRow を作って詰めてから Add でもOK
var row = dt.NewRow();
row["Id"] = 4;
row["Name"] = "渡辺";
dt.Rows.Add(row);
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「最短対処: コピペで動く3つの行追加 / パターン②: DataTable バインド時 — ソース側に足す」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
4 件// 先に列を用意(非バインド) grid.Columns.Add("Id", "ID"); grid.Columns.Add("Name", "名前");未収録
パターン①: 非バインド時 — Rows.Add / Rows.Insert
#91b772042db9
public class Employee { public int Id { get; set; } public string Name { get; set; }未収録
パターン③: BindingList / BindingSource 経由
#9954c7301854
var dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string));未収録
ハマり①: DataSource 設定済みで grid.Rows.Add → InvalidOperationException
#967f8e84addb
// AllowUserToAddRows = true(既定)のまま件数を数えると… int count = grid.Rows.Count; // データ3行でも「4」が返る(+新規入力行) // データ行だけ数えたい時は IsNewRow を除外する未収録
ハマり②: AllowUserToAddRows の新規入力行で件数が1ズレる
#84071369596f
