【发布时间】:2015-11-03 10:59:31
【问题描述】:
对于我的一个项目,我正在尝试从文件(例如 *.csv)加载数据并将其显示在 DataGrid 中。文件的格式没有给出。例如,列数和行数因文件而异。因此,任务是将通用数据表加载到程序中并在DataGrid 中查看。
我的第一次尝试是使用DataTable 并以某种方式将其绑定到DataGrid。然而,经过一段时间的搜索,我读到使用DataTable 不是最好的解决方案,应该使用数据模型。不幸的是,网络中的大多数示例都使用具有固定数据列的数据。此外,我无法让DataGrid 和DataTable 之间的绑定正常工作。能够对两端的数据进行更改会非常好:DataGrid(就像用户那样)和底层数据结构(就像代码那样)。
请有人解释一下,为什么不应该使用DataTable?应该使用什么来实现上述行为?
数据加载本身应该没问题,但是如何将数据表以灵活的方式存储、处理和绑定到DataGridis。
以下代码类型有效。但是,它似乎没有响应对数据的任何更改,例如添加行或列,但 DataTable 包含正确的数据。
<DataGrid x:Name="myDataGrid" AutoGenerateColumns="True"
x:Name="myDataGrid1" AutoGenerateColumns="True" ItemsSource="{Binding myDataTable}" />
DataTable myDataTable { get; private set; }
...
myDataGrid.DataContext = this;
LoadData();
myDataGrid.ItemsSource = myDataTable.DefaultView;
我非常感谢任何帮助!提前致谢!
【问题讨论】:
-
感谢您的回复。该主题中提供的解决方案实际上与我的“示例”相同。如果单元格的内容发生变化是可以的,但如果行或列发生变化则失败......
标签: c# wpf xaml binding datagrid