【发布时间】:2021-02-05 21:15:17
【问题描述】:
我正在尝试将 csv 读入我的数据网格。我需要做的就是获取 csv 并将其放入数据网格中。这是我拥有的 C#(找到 here):
public ICollection CreateDataSource()
{
string CSVDataBase = @"C:\Users\Laura\source\repos\Inveni\Inveni\inventory.csv";
//Create new DataTables and Rows
DataTable dt = new DataTable();
DataRow dr;
//Create Column Headers
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Type", typeof(string)));
dt.Columns.Add(new DataColumn("Brand", typeof(string)));
dt.Columns.Add(new DataColumn("Line", typeof(string)));
//For each line in the File
foreach (string Line in File.ReadLines(CSVDataBase))
{
//Split lines at delimiter ';''
//Create new Row
dr = dt.NewRow();
//ID=
dr[0] = Line.Split(',').ElementAt(0);
//Type =
dr[1] = Line.Split(',').ElementAt(1);
//Brand=
dr[2] = Line.Split(',').ElementAt(2);
//Line=
dr[3] = Line.Split(',').ElementAt(3);
//Add the row we created
dt.Rows.Add(dr);
}
//Return Dataview
DataView dv = new DataView(dt);
return dv;
}
然后:
dgvInventory.ItemsSource = CreateDataSource();
在我的 XAML 中:
<DataGrid x:Name="dgvInventory" ItemsSource="{Binding}" Grid.Column="1" Margin="0" Grid.Row="1" BorderBrush="{x:Null}" Background="#FF0B123F" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Header="ID"/>
<DataGridTextColumn Binding="{Binding}" Header="Type"/>
<DataGridTextColumn Binding="{Binding}" Header="Brand"/>
<DataGridTextColumn Binding="{Binding}" Header="Line"/>
</DataGrid.Columns>
</DataGrid>
此输出是显示“System.Data.DataRowView”而不是实际数据的每个单元格。 System.Data.DataRowView Issue
如何让我的数据网格显示正确的数据?
【问题讨论】: