データグリッドのデータソース バインディングに関して、多くの質問がありました。リストから DataSource を設定する DatagridView がありました
List<Myclass> li = new List<MyClass>();
MyClass O = new MyClass();
O.Name = "Aden";
O.LastName = "B";
O.Id = 12;
li.Add(O);
O = new MyClass();
O.Name = "Li";
O.LastName = "S";
O.Id = 22;
li.Add(O);
Mydgv.DataSource = li;
MyClass の場所
public Class MyClass
{
public string Name {get; set;}
public string LastName {get; set;}
public decimal Id {get; set;}
}
My DataGridView に新しい行を追加したい
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
ただし、Datagrid のDatasourceが List liにバインドされているため、エラーが発生することはありません。だから私の最初の質問は、どうすればこれを行うことができるでしょうか?
私の2番目の質問は、これを行うために、リストliを変更してデータの新しい行を追加し、それをデータグリッドのデータソースに設定する解決策を作成しましたが、それは実行可能な解決策ではないと思いますより良い解決策はありますか?
CurrencyManager でやろうとしても
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[MyGrid.DataSource];
currencyManager1.SuspendBinding();
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
currencyManager1.ResumeBinding();
私がそれを通して知っているように、私は投稿の 1 つMake Row Visible falseで実行したように、Grid にフォーマットを提供するために DataGrid の Binding を一時停止しました。しかし、データグリッドに行を追加する際にここで機能しないのはなぜですか?