将属性添加到DataColumn

时间:2011-07-06 19:02:13

标签: c# ado.net metadata

我正在创建一个报告组件,该组件接受IEnumerable输入并执行一些转换和聚合,并返回具有动态列数的新IEnumerable。我正在使用ADO.NET,因为使用适当的列创建DataTable很容易。

将转换后的IEnumerable发送到报告可视化组件,该组件使用存储在“属性”中的信息来很好地格式化结果。一旦应用了属性,就没有必要删除或更改属性。

我的问题是: 是否可以将AttributeDataColumn相关联,以便ADO.NET PropertyDescriptor发出的DataView包含这些属性?

后续问题: 如果ADO.NET无法实现这一点,那么我可以使用其他库来实现这一目标吗?

编辑:为清晰起见而进行更新 我希望能够做到这样的事情:

DataTable dt = new DataTable();
DataColumn example = dt.Columns.Add("Test",typeof(double));

//This is the functionality I am looking for ideally
example.AddAttribute(new CustomAttribute("Hello"));

public class CustomAttribute : Attribute
{
}

2 个答案:

答案 0 :(得分:7)

请参阅DataColumns上的ExtendedProperties属性。这允许您将自定义数据添加到数据列。您必须自己编写使用此自定义数据的代码,但格式化(或者您打算使用的数据)不是自动的。

答案 1 :(得分:2)

回答我自己的问题:无法将属性注入DataColumn并让它们出现在PropertyDescriptor中,DataView的ITypedList实现会发出