📅  最后修改于: 2023-12-03 15:39:12.032000             🧑  作者: Mango
在开发 WPF 应用程序时,导入 CSV 文件是一项非常常见的任务。这篇文章将介绍如何使用 C# 代码从 CSV 文件中读取数据并将其绑定到 WPF 控件。
在开始之前,你需要准备以下几点:
首先,我们需要创建一个 WPF 应用程序。打开 Visual Studio,选择“文件” -> “新建” -> “项目”,在弹出的对话框中选择“WPF 应用程序”。给你的项目命名,然后按“确定”创建。现在,你应该可以看到一个空的 WPF 窗口。
// 代码示例
// 暂无代码
在项目中添加 CSV 文件,可以将其命名为“data.csv”。在此处,我们将使用 LumenWorks.Framework.IO 的库来读取 CSV 文件。该库以 NuGet 包的形式提供,可以在 Visual Studio 中轻松安装。
我们需要创建一个名为“Person”的类,它将保存 CSV 文件中每行的数据记录。
// 代码示例
public class Person
{
public string Name { get; set; }
public string Age { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
请注意,此类的属性与 CSV 文件中各列的标题相匹配。
现在,我们已经准备好读取 CSV 文件了。我们将使用 LumenWorks.Framework.IO 的“CsvReader”类。
// 代码示例
using (var reader = new CsvReader(new StreamReader("data.csv"), true))
{
var record = new List<Person>();
var headers = reader.GetFieldHeaders();
while (reader.ReadNextRecord())
{
record.Add(new Person
{
Name = reader[headers[0]],
Age = reader[headers[1]],
Email = reader[headers[2]],
Phone = reader[headers[3]]
});
}
}
在此代码中,我们首先创建一个 CsvReader 实例,并将其绑定到我们的 CSV 文件。然后,我们使用 CsvReader 的 GetFieldHeaders() 方法获取每个列标题,并使用它们来填充“Person”类的实例。
我们需要创建一个 DataGrid 控件来显示 CSV 文件中的数据。
// 代码示例
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
<DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
<DataGridTextColumn Header="Phone" Binding="{Binding Phone}"/>
</DataGrid.Columns>
</DataGrid>
在此 XAML 代码中,我们创建了一个名为“dataGrid”的 DataGrid 控件,并使用 Binding 属性将它们与“Person”类的属性绑定起来。
最后,我们将数据加载到 DataGrid 控件中。
// 代码示例
dataGrid.ItemsSource = record;
在此代码中,我们使用 ItemsSource 属性将“Person”类的实例与 DataGrid 控件绑定起来。
这样,我们就完成了将 CSV 文件读入 WPF 应用程序的代码!
通过本篇文章,我们学习了如何使用 C# 代码将 CSV 文件读入 WPF 应用程序,并将其绑定到 DataGrid 控件。希望这篇文章对你有所帮助!