c# - 具有自定义数据类型的 DataTable 列

标签 c# .net sorting datagridview

我编写了自己的数据类型,然后将其用作数据表中列的类型。我正在从文件中读取 XML 数据。在我调用 ReadXML(file) 方法后,所有单元格都有值,除了列中具有我的数据类型的单元格。是否需要重写某些运算符,以便 ReadXML(file) 可以从文件中获取数据并从中生成 MyDataType?此外,当我尝试对该列的默认 View 进行排序时,我得到“对象引用不是对象的实例”。感谢您的帮助。

最佳答案

是的,您可以使用自定义数据类型创建列。

假设您希望属性的类型为地址:

var ds = new DataSet();
var table = new DataTable();
table.Columns.Add("Address", typeof(Address));

ds.Tables.Add(table);

如果您希望能够序列化您的数据集(您不能序列化数据表),您必须确保您的类型 Address 是可序列化的。

有多种方法可以将类标记为可序列化。最简单的方法是使用 SerializableAttribute。但我建议您的 Address 类实现 IXmlSerializable 接口(interface)。这可能有点困难,但您将避免版本控制问题。

关于c# - 具有自定义数据类型的 DataTable 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240106/

相关文章:

c# - 无论鼠标位置如何,都使 WPF 滚动查看器滚动

c# - async 关键字和 TaskScheduler 的选择

.net - 将 Excel 文件读入 .NET 应用程序 : ADO. 网络或 Microsoft.Office.Interop.Excel.Application 的更快方法是什么?

algorithm - 低内存排序

c# - 哪种访问共享点的方法更好?

c# - 在使用 EF6 和 MVC 5 进行代码优先迁移期间,导航属性不是类型的声明属性

c# - 如何更改 ListView 控件中单个子项的前景色?

c# - 如何获取 Vista Media Center 中当前播放文件的文件名?

arrays - .sort 在 Swift 2.0 中不起作用

javascript - 如何对二维数组中的两个数组进行连接排序?