Добавить атрибуты в DataColumn - PullRequest
4 голосов
/ 06 июля 2011

Я создаю компонент отчетности, который принимает входные данные IEnumerable, выполняет некоторые преобразования и агрегации и возвращает новый IEnumerable с динамическим числом столбцов.Я использую ADO.NET для этого, потому что легко создать DataTable с соответствующими столбцами.

Преобразованный IEnumerable отправляется в компонент визуализации отчетности, который использует информацию, хранящуюся в атрибутах, для форматированиярезультаты приятно.Нет необходимости иметь возможность удалять или изменять атрибуты после того, как они были применены.

Мой вопрос таков: возможно ли связать Attribute с DataColumn так, чтобы излучаемый PropertyDescriptorв ADO.NET 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 ]

7 голосов
/ 07 июля 2011

См. Свойство ExtendedProperties в DataColumns.Это позволяет добавлять пользовательские данные в столбец данных.Однако вам придется написать код, который использует эти пользовательские данные самостоятельно - форматирование (или то, для чего вы собираетесь использовать данные) не является автоматическим.

2 голосов
/ 12 июля 2011

Чтобы ответить на мой собственный вопрос: невозможно вставить атрибуты в DataColumn и заставить их появляться в PropertyDescriptor, который реализация ITypedList в DataView испускает

...