2009-08-04 5 views
0

私はListを使ってdataGridViewにバインドしています。 私は、ユーザーに新しい行を追加できるようにしたいと思います。データセットまたはデータテーブルを使用せずに新しい行をdatagridviewに追加するにはどうすればよいですか?

私はBindingListとBindingSourceを使ってみました。ここで

は私の私は、データソースを追加する前のDataGridViewに追加し、コンボボックス列を含まない(バインディングです:

binding = new BindingSource(); 
binding.DataSource= _Rows; 
_dg.DataSource = binding; 

ここで私がしようとしているものです。ここ_Rows

protected override List<BusinessApp> getRows(DataGridViewManager manager) 
    { 
     var dc = manager.dc.DcHerb; 
     return (from p in dc.apps 
       where p.zQueueId == this.ZQueueId 
       select p) 
         .ToList().ToBusinessApp(dc); 
    } 

を埋めるコードです例外は発生しませんが、_Rows数が68から69になっても、dataGridViewはまったく変更されていません。

private void newRow() 
    { 

     _Rows.Add(new BusinessApp(_manager.dc.DcHerb, new app() {acaps="1234" })); 

     //_dg.DataSource = binding; //tried rebinding here 
     //_dg.DataSource = _Rows; 
    } 
+0

どのようにnewRowが呼び出されますか? – ahsteele

+0

ユーザーがファイルメニューに移動して[新規]をクリックすると – Maslow

答えて

0

他のテーブルへの外部キーのバインドをしているかのように、そうであれば新しい追加行にキーを割り当て、データグリッドに現在追加されている新しい行を表示します。それ以外の場合は、コードdatagrid.EndEdit()も表示されません。

0

既に定義した "バインディング"メンバー変数に "AddNew()"メソッドを呼び出す方法はありますか?

binding.AddNew(); 
// and set the needed columns... 
((binding.Current.Row) as <yourTypedDataTableRow>).<columnName> = <someValue>; 
関連する問題