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>; 
관련 문제