0
我正在使用下面的代碼來填充datatable
從List<double[]> list
但該數據表未填充。列表<T> to datatable返回空 - WPF
private void LoadThis(object sender, EventArgs e)
{
X model = DataContext as X;
List<double[]> list = new List<double[]>();
for (int i = 0; i < model.RowFijtable; i++)
{
double[] rowdata = new double[model.ColFijtable];
for (int j = 0; j < model.ColFijtable; j++)
{
rowdata[j] = model.TauTable[i, j];
}
list.Add(rowdata);
}
DataTable table = ConvertListToDataTable(list);
dataGridView1.ItemsSource = table.AsDataView(); //Is this correct?
}
private DataTable ConvertListToDataTable(List<double[]> list)
{
DataTable table = new DataTable();
// Get max columns.
int columns = 0;
foreach (var array in list)
{
if (array.Length > columns)
{
columns = array.Length;
}
}
// Add columns.
for (int i = 0; i < columns; i++)
{
table.Columns.Add();
}
// Add rows.
foreach (var array in list)
{
table.Rows.Add(array);
}
return table;
}
這是我放在XAML
<Grid>
<DataGrid HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Name="dataGridView1"
Loaded="LoadThis"
ItemsSource="{Binding}"
AutoGenerateColumns="True"/>
</Grid>
的信息,我可以看到的行和列的數目正確傳遞到數據表,但沒有數據值,即使列表中包含了完整的數據集!
我也試着這樣做dataGridView1.DataSource = table;
但是這讓我錯誤爲「DataGrid不包含數據源的定義」 ..
感謝您的工作!有沒有辦法添加「行名」?像table.columns.add()語句? @JohnD – user7157732
沒有行名的內置概念 - 但是您可以在開始處添加一個名爲「RowDescription」或「RowName」的列,並用自己的行總結信息填充它。 –