Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将WPF网格控件数据绑定到CSV文件_Wpf_Xaml_.net 4.0_Csv_.net 4.5 - Fatal编程技术网

将WPF网格控件数据绑定到CSV文件

将WPF网格控件数据绑定到CSV文件,wpf,xaml,.net-4.0,csv,.net-4.5,Wpf,Xaml,.net 4.0,Csv,.net 4.5,这样的事情可能吗 我目前正在尝试将CSV文件直接读取到WPF数据网格中。该文件没有已知的格式-也就是说,我不知道字段是什么,或者有多少。我只想以网格格式显示整个文件(类似于excel在打开CSV文件时所做的操作)。我不太熟悉DataGrid的WPF变体,但熟悉通用的.NET DataGrid和DataGridView控件。假设此控件以类似的方式运行,则只需打开csv文件,逐行循环读取并拆分制表符或逗号,然后将数据放入数据表。从那里,您可以将DataGrid控件的数据源设置为DataTable(或

这样的事情可能吗


我目前正在尝试将CSV文件直接读取到WPF数据网格中。该文件没有已知的格式-也就是说,我不知道字段是什么,或者有多少。我只想以网格格式显示整个文件(类似于excel在打开CSV文件时所做的操作)。

我不太熟悉DataGrid的WPF变体,但熟悉通用的.NET DataGrid和DataGridView控件。假设此控件以类似的方式运行,则只需打开csv文件,逐行循环读取并拆分制表符或逗号,然后将数据放入数据表。从那里,您可以将DataGrid控件的数据源设置为DataTable(或者创建DataView,如果您需要一些自定义格式/查看),并调用Refresh()方法

DataGrid基于控件,项由类型为
IEnumerable
的控件表示。因此,如果您只是想在DataGrid中显示CSV,那么您应该在实现
IEnumerable
的任何数据结构中读取CSV,并通过以更优先的方式从XAML绑定的代码将其设置为
DataGrid.ItemsSource
属性。因此,您的网格将有一个代表整个CSV文件行的列。如果要在单独的列中显示每个值,
IEnumerable
数据结构的每个项(我建议
IList
)也应该表示
IEnumerable
,基本上是
IList

要在本地数据结构中读取CSV,我建议使用一些免费的CSV解析库,而不是自己进行,因为CSV解析有时很棘手。作为一个案例,我们来看看这个例子

我相信这是一个非常接近的例子,可以说明你正在尝试做什么:
(ListView也是ItemsControl,所以解决方案是相同的)

您是否总是有标题行?如果这提供了解决方案,我可以有。这更像是csv读/写问题。一旦您拥有了解析功能,就可以更容易地实现分页等等。