Silverlight: DataGrid – динамическое добавление колонок в DataGrid с динамическими инменами колонок, с поддержкой DataPager. Должно сработать и для WPF.
Silverlight: DataGrid – динамическое добавление колонок в DataGrid с динамическими инменами колонок, с поддержкой DataPager.
Должно сработать и для WPF (возможно при доработке), но для WPF, видимо, лучше использовать в качестве низлежащего объекта данных DataTabel.
В Silverlight класс DataTabel не существует.
Главное условие – сейчас поддерживается максимально до 20 колонок, но это количество не ограничено, просто фиксированно в коде. Правте код сами, кому надо.
Решение удобно использовать для отображения отчетов с неизвестными именами колонок и неизвестным количеством колонок и неизвестным типом данных. Т.к. это для отчетов, то изменения данных не подразумеваются.
Решению всеравно, что вы используете, List<> или ObservableCollection<>.
Типы данных которые не поддерживаются добавте сами, это просто сделать по аналогии с имеющимся в проекте коде.
Сейчас поддерживаются String, Int32, Decimal, Double, DateTime.
За целостность данных вы отвечаете сами. Я имел ввиду, что нет проверки как в DataTabel, что вы добавляете верный тип данных. Т.е. если вы начили в первую колонку добавлять число, то должны добавлять число в остальные колонки.
Правда можете добавлять null, только не забывайте даже null обарачивать в специальный объект.
Project DataGrid Dynamic Columns for Visual Studio 2008 Silverlight 3
Возможно вам потребуется установить Silverlight Toolkit для DataGrid и DataPager, чтоб проект собирался.
Если будут желающие я объясню, что там делается.
___
Доработки 26.11.2009
По просьбе трудящихся добавил свойство для детальной информации, которое отдельно можно отрисоваться в детальной части строки DataGrid. Свойство не типизировано.
Комментарии
Отправить комментарий