Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Дерево по таблице из БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые, Вопрос ни с какой конкретно задачей не связан, просто учусь Есть в БД простейшая таблица с иерархией (поля Id, ParentId, Name) Хочу показать данные в виде дерева Сделал все как в этой замечательной статье: Hierarchical Data Trees with a Database Все получилось как я хотел, все работает, но я подумал, а единственный ли это путь... Нельзя ли все задать декларативно (т.е. в *.xaml, а не в *.cs) ? Другими словами, можно ли как-то построить дерево по полученным из БД данным, не присваивая в рантайме ItemsSource? (Мои собственные попытки успехом не увенчались, либо показываются все на первом уровне, либо только корень) ЗЫ. Возможно, я просто не тот пример нашел. Если так, поделитесь плз ссылкой Заранее спасибо всем откликнувшимся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 15:15 |
|
||
|
Дерево по таблице из БД
|
|||
|---|---|---|---|
|
#18+
Паганель, Думайте в этом направлении: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 15:41 |
|
||
|
Дерево по таблице из БД
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, мне надо попробовать взять предка дерева (т.е. ItemsControl) и "реализовать" функционал дерева самостоятельно К сожалению, я пока еще не настолько хорошо знаю WPF, чтобы это сделать Но все равно спасибо К Вашему совету вернусь когда подучусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 10:33 |
|
||
|
Дерево по таблице из БД
|
|||
|---|---|---|---|
|
#18+
Паганель, Нет, ItemsControl это контрол который умеет хостить коллекции. Можете взять вместо него ListBox. В моем примере юзер контрол, у которого есть ItemsControl, который хостит внутри этого юзер контрола несколько таких же самых юзер контролов (для каждого дочернего элемента дерева). Все это называется рекурсия. Добавьте к юзер контролу TextBlock и завижите его на свойство, например NodeName и получите дерево. Учитывая выше сказанное, в вью модели узла дерева должно быть поле NodeName и коллекция дочерних элементов узла (коллекция вью моделей узла). Что-бы поместить дерево на главную форму, сделайте что-то типа такого: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=21&gotonew=1&tid=1442394]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 374ms |

| 0 / 0 |
