2013-03-27 46 views
0

我試圖輸出數據網格的單元格的值到XML。網格的單元格是值爲ALLOCATED,AVAILABLE,OCCUPIED的組合框單元格。我的XML輸出需要是這樣的形式如所述如下:(其中狀態是從各單元的組合框中的選擇的值和XLOC是行索引,YLoc是那個特定單元的列索引)值寫入爲xml C#

<Cell XLoc="1" YLoc="1" Status="AVAILABLE"/> 
<Cell XLoc="1" YLoc="2" Status="OCCUPIED"/> 
<Cell XLoc="1" YLoc="3" Status="OCCUPIED"/> 

目前我創建一個列表,並從電網即節省了COMBOX選擇的值,可用,佔據了....

private List<string> Grid_Values() 
{ 
    List<string> CellValues = new List<string>(); 

    for (int i = 0; i < ToolMapGrid.Rows.Count; i++) 
    { 
     for (int j = 0; j < ToolMapGrid.ColumnCount; j++) 
     { 
      CellValues.Add(ToolMapGrid.Rows[i].Cells[j].Value.ToString()); 

     } 
    } 
    ... 
} 

我寫上面的數值爲XML以這樣的方式。

List<string> GridValues = Grid_Values(); 
foreach (string item in GridValues) 
{ 
    writer.WriteStartElement("Cell"); 
    writer.WriteAttributeString("Status",item); 
    writer.WriteEndElement(); 
} 

我不明白如何將Xloc和Yloc值寫入XML文件。我將組合值作爲列表返回,但如何使相同的方法返回行列索引,以及如何將它寫入XML文件。

請幫幫我。在此先感謝

+1

不要使用一個DataGrid的數據結構。從表中寫入網格是DataBound的。 – 2013-03-27 21:27:52

+0

它喜歡我需要輸入行數和列數,然後單擊生成生成網格網格按鈕。然後,我需要在網格的所有單元格中進行選擇。當我做我點擊生成,我所有的內容寫入XML XML按鈕,以使DataGrid是強制性 – Pinky 2013-03-27 22:07:52

回答

0

創建一個名爲XmlInfo新的類,它有三個屬性,像這樣:

class XmlInfo 
{ 
    string value{get; set;} 
    int column {get: set;} 
    int row {get; set; } 
} 

之後改變你這樣的代碼:

private List<XmlInfo> Grid_Values() 
{ 
    List<XmlInfo> CellValues = new List<XmlInfo>(); 

    for (int i = 0; i < ToolMapGrid.Rows.Count; i++) 
    { 
     for (int j = 0; j < ToolMapGrid.ColumnCount; j++) 
     { 
      XmlInfo nfo = new XmlInfo { 
       value = ToolMapGrid.Rows[i].Cells[j].Value.ToString(), 
       row = i, 
       column = j} 
      CellValues.Add(nfo); 
     } 
    } 
} 

然後你可以使用如下代碼這個:

List<XmlInfo> GridValues = Grid_Values(); 
foreach (XmlInfo item in GridValues) 
{ 
    writer.WriteStartElement("Cell"); 
    writer.WriteAttributeString("Status", item.value); 
    writer.WriteAttributeString("XLoc", item.column); 
    writer.WriteAttributeString("YLoc", item.row); 
    writer.WriteEndElement(); 
} 

您可能想要查看語法錯誤,因爲我直接輸入它進入編輯,我可能錯過了一些東西。

+0

打破它,這樣,看看什麼是真正丟失: 'XmlInfo NFO =新XmlInfo(); nfo.value = ToolMapGrid.Rows [I] .Cells [j]的.Value.ToString(); nfo.row = i; nfo.column = j的;' – Kenneth 2013-03-27 23:59:57

+0

非常感謝你:) – Pinky 2013-03-28 20:49:43

0

我這是怎麼實現的,它的工作:)

 for (int i = 0; i < ToolMapGrid.Rows.Count; i++) 
     { 
      for (int j = 0; j < ToolMapGrid.ColumnCount; j++) 
      { 
       writer.WriteStartElement("Cell"); 
       writer.WriteAttributeString("XlOC", (i + 1).ToString()); 
       writer.WriteAttributeString("YLOC", (j + 1).ToString()); 
       writer.WriteAttributeString("Status", ToolMapGrid.Rows[i].Cells[j].Value.ToString()); 
       writer.WriteEndElement(); 
      } 
     }