我正在创建一个报告组件,该组件接受IEnumerable
输入并执行一些转换和聚合,并返回具有动态列数的新IEnumerable
。我正在使用ADO.NET,因为使用适当的列创建DataTable
很容易。
将转换后的IEnumerable
发送到报告可视化组件,该组件使用存储在“属性”中的信息来很好地格式化结果。一旦应用了属性,就没有必要删除或更改属性。
我的问题是:
是否可以将Attribute
与DataColumn
相关联,以便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
{
}
答案 0 :(得分:7)
请参阅DataColumns上的ExtendedProperties属性。这允许您将自定义数据添加到数据列。您必须自己编写使用此自定义数据的代码,但格式化(或者您打算使用的数据)不是自动的。
答案 1 :(得分:2)
回答我自己的问题:无法将属性注入DataColumn并让它们出现在PropertyDescriptor中,DataView的ITypedList实现会发出