Comments 6
Пришел почитать про програмное решение динамической таксономии, про какие-нибудь графовые БД или другие хитрые и изящные решения, а тут…
можно было бы написать что-то типа «переделываем TreeView в .NET под поддержку XML и кастомных полей»
А зачем тут вообще XML? Самый неудачный формат храниения данных для вашего случая. И вообще захардкоженое дерево это ни разу не интеллектуальная система помощи при выборе.
XML — чтобы редактировать дерево, параметры вывода кнопок и контент без изменений кода. XML как раз поддерживает древовидную структуру данных и парсится в .NET встроенными методами. Также файл данных можно спокойно редактировать в Блокноте.
Что значит «захардкоженное» дерево? У меня оно как раз динамическое — меняешь файл, меняется картинка, глубина дерева и ширина не ограничены.
Любопытно, какое бы Вы решение использовали в данном случае?
Что значит «захардкоженное» дерево? У меня оно как раз динамическое — меняешь файл, меняется картинка, глубина дерева и ширина не ограничены.
Любопытно, какое бы Вы решение использовали в данном случае?
Выглядит симпатично, был бы рад, если бы Вы раскрыли реализацию на WPF подробнее, спасибо.
Хотя идея WPF — это как-бы разделить труд программиста и дизайнера, т.е. подобный интерфейс должен быть предварительно прописан в XAML, но у меня всё программно-генерируемое. Если кратко, то: в горизонтальную стэк-панель (которая внутри горизонтального скролла) добавляются столбы-гриды определённой ширины. Внутри столбца-грида: картинка фона + вертикальный стэк по центру + прочие элементы типа текст заголовка столбца. В центральный стэк столбца грузятся мини-классы кнопок, унаследованные от грида (хотя можно и без этого обойтись): иконка + текстовые поля. По клику вычисляется корень — откуда ветка приросла, и ветвь — куда ей дальше расти.
Sign up to leave a comment.
Интерактивное древовидное меню