2011-01-06 17 views
2

我正在研究解析文件并将它们导入WPF DataGrid的系统。这些文件被分成一个集合字符串[]并传回给我,以显示在UI中。将String []转换为Expando来绑定WPF中的DataGrid

将这个string []集合转换成可绑定到WPF(.NET4)DataGrid的东西的最简单方法是什么?

题外话:我想使用Expando的.....

+0

字符串[]是字符串pa这些文件...或? – 2011-01-06 16:47:30

+0

它容易绑定到字符串[],这是什么问题? – 2011-01-06 16:51:15

回答

3

Expando不幸的是动态对象还没有与WPF4在我的测试工作。但是,还有其他可行的方法可用。

对于String[]集合,你可以使用一个DataTable给你动态列:

var rawData = new string[][] 
{ 
    new string[] { "R1F1", "R1F2", }, 
    new string[] { "R2F1", "R2F2", }, 
}; 
var fieldNames = Enumerable.Range(1, rawData[0].Length).Select(field => "Field" + field); 
var table = new DataTable(); 
table.Columns.AddRange(fieldNames.Select(fieldName => new DataColumn(fieldName)).ToArray()); 
foreach (var record in rawData) 
{ 
    DataRow row = table.NewRow(); 
    for (int i = 0; i < record.Length; i++) 
    { 
     row[i] = record[i]; 
    } 
    table.Rows.Add(row); 
} 
DataContext = table; 

连同XAML这样的:

<Grid> 
    <DataGrid ItemsSource="{Binding}"/> 
</Grid> 

结果:

alt text