2012-03-31 3 views
1

이것은 내 프로그램의 현재 클립입니다. 즉, datagridview는 데이터 테이블에 연결되어 있지 않으므로 dataviewgrid에서 아무 것도 변경하지 않으면 데이터 테이블에 반영되지 않습니다 ... 어떻게 할 수 있습니까? 그래서 datagridview의 모든 편집 내용을 적어도 datatable에 반영 할 수 있습니까? (귀하의 경우 표) 기본이되는 데이터 소스에 대한 변경 사항을 전파하기 위해C# Datagridview bindingsource

 OpenFileDialog OFD = new OpenFileDialog(); 
     OFD.Title = "CSV File"; 
     OFD.Filter = "Spreadsheet | *.csv"; 
     OFD.ShowDialog(); 

     FileHelperEngine engine = new FileHelperEngine(typeof(csv_SeatingPlan)); 
     try 
     { 
      csv_SeatingPlan[] container = engine.ReadFile(OFD.FileName) as csv_SeatingPlan[]; 
      CSV_Seating_Plan = new List<csv_SeatingPlan>(container); 

      DataTable DT_student_Records = new DataTable(); 
      DT_student_Records.Columns.Add("Exam_Period", typeof(string)); 
      DT_student_Records.Columns.Add("Exam_Code", typeof(string)); 
      DT_student_Records.Columns.Add("Student_ID", typeof(string)); 
      DT_student_Records.Columns.Add("Student_Name", typeof(string)); 
      DT_student_Records.Columns.Add("Candidate_Number", typeof(string)); 


      foreach (csv_SeatingPlan row in CSV_Seating_Plan) 
      { 
       DT_student_Records.Rows.Add(row.examperiod, row.exam_Code, row.id_Student, row.name_Student, row.candidatenum_Student); 
      } 

      DT_student_Records.DefaultView.Sort = "Candidate_Number ASC"; 
      this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 11); 
      //bindingCSVSP.DataSource = DT_student_Records; 
      this.dataGridView1.DataSource = DT_student_Records; 

답변

0

, 당신은 BindingSource 객체를 사용한다. 이 작업을 수행하는 방법의 예는 링크 된 페이지의 맨 아래에 있습니다.

+0

어이, 나는 datatables를 없애고 대신 datagridview.source = list ...를 가지고있는 바인딩 목록을 사용했다. 그러나 내가 datagridview를 실행할 때 그것은 내가 이미 dgv.readonly = false – Magikarp

+0

이 경우 대신 BindingList를 사용하십시오. http://msdn.microsoft.com/en-us/library/ms132679.aspx – Maciej

+0

바인딩 목록은 여전히 ​​나에게 datagridview에서 값을 편집하지 않습니다./않습니다. 이제 액션 이벤트가 필요 하신가요? – Magikarp