gpt4 book ai didi

c# - DataGrid Wpf 中的 CSV/文本

转载 作者:太空狗 更新时间:2023-10-29 22:10:44 24 4
gpt4 key购买 nike

我似乎无法弄清楚如何在 DataGrid 中添加我的 CSV 文件。有人可以向我解释我的方法应该是什么吗?

假设我的 csv 文件中有一个包含以下内容的 CSV 文件:

ID;Name;Age;Gender
01;Jason;23;Male
02;Lela;29;Female

这里真的需要一些帮助

最佳答案

忘掉基于DataTable 的东西吧。太可怕了。它不是强类型的,它迫使您进行各种基于“魔术字符串”的黑客攻击。

相反,创建一个适当的强类型数据模型:

public class Person
{
public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

public Gender Gender { get; set; }
}

public enum Gender
{
Male,
Female
}

然后创建一个可以从文件加载数据的服务:

public static class PersonService
{
public static List<Person> ReadFile(string filepath)
{
var lines = File.ReadAllLines(filepath);

var data = from l in lines.Skip(1)
let split = l.Split(';')
select new Person
{
Id = int.Parse(split[0]),
Name = split[1],
Age = int.Parse(split[2]),
Gender = (Gender)Enum.Parse(typeof(Gender), split[3])
};

return data.ToList();
}
}

然后使用它来填充 UI:

public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();

DataContext = PersonService.ReadFile(@"c:\file.csv");
}
}

XAML:

<Window x:Class="WpfApplication14.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<DataGrid AutoGenerateColumns="True"
ItemsSource="{Binding}"/>
</Window>

结果:

enter image description here

关于c# - DataGrid Wpf 中的 CSV/文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com