2012-10-20 2 views
1

내 XML 파일에는 많은 요소가 있고 많은 하위/하위 자식 요소가 있으므로 일반 목록으로로드하고 DGView에 표시하고 열을 이미 작성하기로 결정했습니다./DGview에서 customed.DataGridView에서 Xml 파일로 제네릭 컬렉션 값 가져 오기

DataGridview의 값을 편집하고 파일에 다시 직렬화해야합니다. 내가 알고 싶은데, 어떻게 DataGrid보기에서 값을 얻을 수 있으며 파일에 다시 serialize하십시오.

나는 이것을 사용하려고했는데, Dataset ds = new Dataset();ds = (Dataset) (dataGridView2.Datasource);ds.WriteXml("XML_File.xml"); 오류 메시지, nullRefExceptionError가 있습니다. DataSet ds가 null임을 알기 때문에이 오류가 발생하는 이유는 무엇입니까?

바인딩에 데이터 세트를 사용하고 싶지 않습니다. xml 파일을 직접 DataGridview에 바인딩하고 싶습니다. 내 접근 방식으로 가능합니까 ???

이러한 접근 방식은 좋지만 원래 XML 파일 등과 같은 XML 파일을 저장 아니에요 :

DataTable dt = new DataTable("Rules"); 

     for (int i = 0; i < dataGridView4.ColumnCount; i++) 
     { 
      dt.Columns.Add(dataGridView4.Columns[i].Name, typeof(System.String)); 
     } 

     DataRow myrow; 
     int icols = dataGridView4.Columns.Count; 
     foreach (DataGridViewRow drow in this.dataGridView4.Rows) 
     { 
      myrow = dt.NewRow(); 
      for (int i = 0; i <= icols - 1; i++) 
      { 

       myrow[i] = drow.Cells[i].Value; 
      } 
      dt.Rows.Add(myrow); 
     } 

     dt.WriteXml(@"C:\test\items.xml"); 

날/serilaize 된 DataGridView에서 값을 쓰기 위해 어떤 도움.

답변

1

나는이 문제를 해결하기 위해 & 접근 방식을 채택했다.

List<Test>laneConfigs = new List<Test>();//From a class 
      foreach (DataGridViewRow dr in dataGridView1.Rows) 
      { 
       int bbbBorder = 0; 
       Int32.TryParse(dr.Cells["BBor"].Value.ToString(), out bbbBorder); 
       int eeee= 0; 
       Int32.TryParse(dr.Cells["EBor"].Value.ToString(), out eee); 

       LaneConfig laneConfig = new LaneConfig(
        dr.Cells["ID"].Value.ToString(), 
        (TrafficLaneType)Enum.Parse(typeof(TrafficLaneType), dr.Cells["Type"].Value.ToString()), 
        new ValueWithUnit<int>(bbbBorder, "mm"), 
        new ValueWithUnit<int>(eee, "mm")); 

       laneConfigs.Add(llaneConfig); 
      } 
관련 문제