Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для goodwin74
1 / 1 / 0
Регистрация: 29.09.2013
Сообщений: 26
.NET 4.x

Как сделать древо для контекстного меню с возможностью сохранения и загрузки

14.01.2021, 06:04. Показов 574. Ответов 1

Студворк — интернет-сервис помощи студентам
Я как веб разработчик на PHP и JS часто пользовался ассоциативными массивами с многоуровневой вложенностью. Причем массив мог иметь в себе разные типы, например один элемент содержит объект со свойствами, а соседний элемент это массив в котором тоже есть объекты со свойствами. Структура визуально напоминает многоуровневое меню или например закладки в браузере.

Возник вопрос как подобное реализовать в C#. Сам объект со свойствами как я понял можно создать например через Dictionary<string,string>(поправьте если есть вариант лучше). Но вложенность требует разнотипность элементов в массиве, т.е. какие то элементы будут конечными с типом Dictionary<string,string>, а какие то будут неким "проводником" к массиву из Dictionary<string,string> внутри.

Чтобы еще понятнее было о какой структуре я говорю привожу визуализацию примерной структуры (она естественна может быть разной вложенности и иметь разное кол-во ветвей).
Так же хочется сделать чтобы это древо легко можно было сериализовать для сохранения в файл и потом так же легко считать его восстановив древо.
Миниатюры
Как сделать древо для контекстного меню с возможностью сохранения и загрузки  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2021, 06:04
Ответы с готовыми решениями:

Как сделать мультиплеер с возможностью сохранения?
Здравствуйте.Решил набросать небольшую игрушку для андроид, но возник вопрос по мультиплееру. Игра представляет собой небольшую 2д...

Как сделать выбор файла с возможностью сохранения путей?
Здравствуйте. Как сделать выбор программы (файл exe) с сохранением? То есть чтобы другой пользователь смог нажать на кнопку...

Как сделать выбор файла с возможностью сохранения путей?
Здравствуйте. Как сделать выбор программы (файл exe) с сохранением? То есть чтобы другой пользователь смог нажать на кнопку...

1
Эксперт .NET
 Аватар для Usaga
14138 / 9367 / 1350
Регистрация: 21.01.2016
Сообщений: 35,248
14.01.2021, 08:29
Цитата Сообщение от goodwin74 Посмотреть сообщение
Причем массив мог иметь в себе разные типы, например один элемент содержит объект со свойствами, а соседний элемент это массив в котором тоже есть объекты со свойствами. Структура визуально напоминает многоуровневое меню или например закладки в браузере.
Я вас расстрою, но такой подход - фу, даже в мире JavaScript. Не говоря уже о C#.

Ваше дерево должно (и может!) состоять из объектов или одного типа (класса) или одной иерархии (классы-наследники одного общего предка). В том числе, даже если вы пишете на PHP.

И в случае с ассоциативными коллекциями тоже самое: пихать в одну кучу строки, даты, числа и всё остальное - есть чистое фу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2021, 08:29
Помогаю со студенческими работами здесь

Как сделать программу для меню загрузки?
Здравствуйте, подскажите пожалуйста, как написать программу-меню загрузки, которая при выборе могла бы открывать указанный файл, не в...

Как сделать свои пункты контекстного меню файлов в проводнике?
Как программно и правильно добавить свои пункты в контекстное меню при выборе одного или несколько файлов любого расширения? А так же, как...

Как сделать, чтобы при редактировании появлялся тот пункт контекстного меню, который был до этого?
Приветствую всех! Есть форма: Как сделать, чтобы при нажатии на ссылку &quot;редактировать&quot; появлся тот статус, который был до...

Как создать горячие клавиши в реесторе для пункта контекстного меню
Всем привет! Не могу разобрать, как сделать горячие кнопки для пункта в контекстном меню Google Диск&gt;&quot;Скопировать ссылку в буфер...

Сделать неактивной кнопку из контекстного меню
Здравствуйте. Подскажите, пожалуйста, можно ли как-нибудь сделать неактивной одну из кнопок контекстного меню после её нажатия?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru