2012-08-10 28 views
0

我有一個問題,我需要獲取總列數,它定義了總列數。目前我有一個函數,它指定DataGrid.columns上的標題文本。動態數據網格標題

public static string ColumnHeader1 = Properties.Settings.Default.ColumnHeader1; 

public void dataGridHeaders() 
    { 
     dataGrid.Columns[0].Header = ColumnHeader1; 
     dataGrid.Columns[1].Header = ColumnHeader2; 
     dataGrid.Columns[2].Header = ColumnHeader3; 
     dataGrid.Columns[3].Header = ColumnHeader4; 
     dataGrid.Columns[4].Header = ColumnHeader5; 
     dataGrid.Columns[5].Header = ColumnHeader6; 
     dataGrid.Columns[6].Header = ColumnHeader7; 
     dataGrid.Columns[7].Header = ColumnHeader8; 
    } 

正在從xml設置文件中讀取字符串變量。我想要做的是取決於xml文件中有多少個字符串描述了在運行時會有多少列。或者添加一個int var說..

public static int totalNumberOfColumns = 8; 

然後迭代通過添加列的循環。

是可能的這些方式中的任何一種嗎?

回答

1

獲取XML文件中的列標題爲一個字符串列表

List<string> columnHeaderList = new List<string>(); 
foreach (string header in XmlColumnList) 
    columnHeaderList.Add(header); 

其中XmlColumnList一些陣列持有該值。現在添加下面的方法,它將添加所有可用的列標題,因爲它是重要的。

private void DataGridHeaders(List<string> headerList) 
{ 
    for (int i = 0; i < headerList.Count; i++) 
     dataGrid.Columns[i].Header = headerList[i]; 
} 

我希望這會有所幫助。

0
  var xmlSample = @"<DataGridColumnsHeader> 
          <ColumnHeaderText>Name</ColumnHeaderText> 
          <ColumnHeaderText>Country</ColumnHeaderText> 
          <ColumnHeaderText>Phone</ColumnHeaderText> 
          </DataGridColumns>"; 

     var counter = 0; 
     var elementCount = XDocument.Load(new System.IO.StringReader(xmlSample)).XPathSelectElements("//ColumnHeaderText").Count(); 
     foreach (var element in XDocument.Load(new System.IO.StringReader(xmlSample)).XPathSelectElements("//ColumnHeaderText")) 
     { 
      dataGrid.Columns[counter].Header = element.Value; 
      counter++; 
     } 

希望這會有所幫助!

+0

我已經完成了一種不同的方式..很可能是最懶惰的方式..讀取一個完整的字符串與所有的值到一個數組中,並拆分它們。 – 2012-08-24 12:21:11