我似乎无法弄清楚如何在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" > <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding}"/> </Window>
结果: