| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > WPF DataGrid календарь |
| Автор: xTr1m 6.4.2012, 08:18 |
| День добрый, есть у меня DataGrid (работаю в Expression Blend), его колонки должны представлять из себя дни текущего месяца. Месяца естественно меняются. Я не могу понять как организовать это через binding. Допустим, что я связываю колонки с каким то списком, который представляет собой дни месяца. А как тогда связать эти колонки с данными, которые будут представлять строки? В общем какая то каша в голове, наверное я чего то недопонимаю. |
| Автор: erm0l0v 6.4.2012, 08:43 | ||||
| Я реализовывал подобную функциональность, к сожалению мое решение недостаточно расширяемое по этому вам придется заточить его под свою задачу. И так во первых для того чтобы реализовать произвольное количество колонок вам нужно писать код. Я реализовал это с помощью Behavior, и я реализовывал эту задачу на Silverlight думаю что для WPF этот Behavior будет отличаться несильно. Вот код моего Behavior
здесь мы вешаемся на событие AutoGeneratingColumn и навязываем ему свою логику. а биндинг у меня осуществлялся к коллекции таких классов:
Как я уже говорил решение получилось не очень изящное и совсем не гибкое но меня вполне устроило. |
| Автор: xTr1m 6.4.2012, 09:00 |
| Спасибо, оказывается я много чего не знаю =)) буду разбираться. Единственное, глядя, на все это задаюсь вопросом. А не легче ли тогда полностью самому из кода контролировать содержимое таблицы. Ну то есть без bindinga? |
| Автор: erm0l0v 6.4.2012, 09:25 |
| Как сказать, вопрос сложный. В больших проектах Binding себя оправдывает в маленьких может показаться стрельбой из пушки по воробьям. Но в любом случае при использовании Expression Blend я бы вам рекомендовал использовать Binding, удобно когда все данные загружены в форму еще в дизайнере. Лично мне нравится использовать Binding я уже привык к нему и на все остальное смотрю как на что то из каменного века. А задача озвученная в вашем посте подразумевает написание кода, это может быть добавление кода в xaml.cs или переопределение DataGrid но я посчитал что более правильно будет использовать Behavior. |