这种情况是否可能呢?
我目前正在尝试将CSV文件直接读入WPF DataGrid中。该文件没有已知的格式,也就是说,我不知道字段是什么,有多少个字段。我只想以网格格式显示整个文件(类似于在打开CSV文件时Excel所做的方式)。
我对WPF版本的DataGrid不是很熟悉,但对于一般的.NET DataGrid和DataGridView控件则比较了解。假设这个控件的操作方式类似,你只需要打开csv文件,逐行读取并按制表符或逗号进行分割,然后将数据放入DataTable中。从那里,你可以将DataGrid控件的DataSource设置为DataTable(或创建DataView,如果需要一些自定义格式/视图),并调用Refresh()方法。
DataGrid基于ItemsControl控件,项目由ItemsControl.ItemsSource表示,其类型为IEnumerable
。因此,如果您只想在DataGrid中显示CSV,则应将CSV读入任何实现IEnumerable
的数据结构中,并通过代码behing或更可取的方式-从XAML绑定设置到DataGrid.ItemsSource
属性。因此,您的网格将具有代表整个CSV文件行的单个列。如果要在单独的列中显示每个值-IEnumerable
数据结构的每个项(我建议IList<>
)也应表示IEnumerable
,基本上是IList<IEnumerable<object>>
。