Как отобразить календарь на 365 дней в WPF - PullRequest
0 голосов
/ 04 мая 2011

Я должен показать все 365 дней в дневнике событий (это должно быть 365 дней, у меня нет выбора).

Приложение изначально было в форме winforms, в нем было 12 DataGridView, по одному на каждый месяц, с одной маленькой текстовой строкой на каждый день до 31 строки. Нам (просто) удалось показать все это на экране (это было сделано в два ряда, то есть в январе-июне топ 6 DGV, в июле-декабре снизу 6 DGV).

Мне нужно передать проект в WPF.

Мой вопрос касается скорости, winforms вер не были слишком быстрыми, я задаюсь вопросом, каков наилучший подход к макету и БД для этого приложения, то есть больше информации -

  • В качестве дневника используется T-SQL
  • Не для всех дней есть что отображать (т.е. нет прямой привязки для текста day-> db day enrty)
  • В записях БД есть дата, описание события (описание - это то, что мне нужно отобразить)
  • Типичный дневник имеет около 150 записей для отображения

Любая помощь оценена

1 Ответ

1 голос
/ 04 мая 2011

Не могу вам сильно помочь с макетом, однако мне нужно было реализовать что-то очень похожее в silverlight, и это решение, которое я использовал, работало довольно хорошо.

1: реализовать изолированное хранилище нана стороне приложения, это используется в качестве кеша дневника

2: на стороне базы данных вы должны хранить данные как тип данных XML

3: когда пользователь входит в систему, немедленно отображает содержимоекеша дневника, так что ожидания больше нет

4: Далее немедленно запускаем фонового работника, который возвращается в базу данных и получает самую последнюю актуальную информацию дневника

5: после фонового работникаПо завершении проверьте, не отличаются ли данные за один день из базы данных от данных, хранящихся в локальном кеше, если это так, обновите графический интерфейс и локальный кеш

6: запускайте фонового работника каждые 5 минут, выполняя шаги 4 и 5, как требуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...