Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
5 / 5 / 4
Регистрация: 20.01.2011
Сообщений: 350
1

Динамическое создание атрибутов для отображения в PropertyGrid

10.06.2017, 20:38. Показов 1631. Ответов 3
Метки нет (Все метки)

Всем привет. Постараюсь объяснить понятно свой вопрос.
Итак, имеется PropertyGrid в котором мне требуется отображать и изменять определенные параметры. Задача состоит в том, что параметры, которые нужно отображать, должны браться из xml файла. Т.е. есть две программы (а в дальнейшем и больше) - первая - основная, в которой я меняю свойства. Вторая - типа плагина, которая эти свойства использует.
Суть в том, что вторая программа (плагин) в своем коде определяет какие у нее используются параметры. Чтобы между программами передавать их, я решил использовать xml. Т.е. плагин, при инициализации, создает определенное описание стиля и сохраняет его в xml файл. Основная программа берет этот файл и в окне отображает параметры этого стиля, может их менять и сохранять обратно, чтобы плагин мог их использовать.
Так вот при попытке использовать PropertyGrid (в первый раз в моей жизни) я выяснил, что мне нужно делать класс, в котором для свойств я должен задавать атрибуты (Category, Description и т.д.). Но все эти атрибуты - это константные значения и получается, что я не могу динамически создавать экземпляр такого класса, беря значения их xml файла. Например, Description - это значение, которое хранится в xml файле.

Еще немного опишу на примере: для работы плагина используется некоторое целочисленное значение. В этом плагине я задаю для этого значения описание, минимальное, максимальное и дефолтное значение. Т.е. параметр с именем "width", с отображаемым именем "Ширина" и с описанием "Ширина линии обрыва в мм". Эти все значения я могу сохранить в файл.
Далее, основная программа должна прочитать этот файл и отобразить эти параметры в PropertyGrid

Вот как такое реализовать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2017, 20:38
Ответы с готовыми решениями:

Динамическое добавление свойств в PropertyGrid
Каким образом можно на этапе выполнения программы скрывать, отображать, добавлять, удалять свойства...

Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей.
Добрый ночь! Возникла такая проблема. Вот код. SqlConnectionStringBuilder bu = new...

Динамическое создание SQL для DeleteCommand (UpdateCommand) не поддерживается
После редактирование(UpdateCommand) или удаления(DeleteCommand) строки выдает ошибку(скрин...

Динамическое создание вкладки и таблицы для нее
Добрый день. Я хочу в дипломной работе сделать так, открываю форму "Учетные записи" вижу кнопку...

3
8436 / 4625 / 1811
Регистрация: 11.02.2013
Сообщений: 9,844
10.06.2017, 21:57 2
Плагины так не пишутся, если мы говорим именно о плагинах. Плагин, обрабатывающий данные, ведь точно знает, что именно он будет обрабатывать. Тогда пусть он даёт основной программе созданный объект, основная программа его отобразит в PropertyGrid, пользователь изменит его свойства и основная программа сообщит плагину, что объект можно обрабатывать.
Как-то так.
Простое создание плагинов в WinForms C#
1
Эксперт .NETАвтор FAQ
10297 / 5032 / 1820
Регистрация: 11.01.2015
Сообщений: 6,222
Записей в блоге: 34
10.06.2017, 22:11 3
Цитата Сообщение от Modis Посмотреть сообщение
Динамическое создание атрибутов для отображения в PropertyGrid
Если отвечать на ваш вопрос в лоб, то вам нужно воспользоваться классом TypeDescriptor. С помощью этого класса можно объяснить PropertyGrid что и как отображать.
Однако использование TypeDescriptor довольно муторное и я бы рекомендовал сделать как нибудь попроще. Есть множество других возможностей. Например:
1) Передавать из плагина не XML а предоставлять готовый класс с готовыми атрибутами. По-моему это самый простой и естественный путь.
2) Отказаться от PropertyGrid и сделать свой компонет для редактирования свойств по описанию из XML. Это не так уж и сложно, пример как это сделать здесь.
3) Динамически создать класс(в текстовом виде) с нужными атрибутами из XML и скомпилировать его.
0
5 / 5 / 4
Регистрация: 20.01.2011
Сообщений: 350
11.06.2017, 10:49  [ТС] 4
Всем спасибо за ответы. В итоге я столкнулся с другой проблемой совершенно в другом месте и пришел к выводу, что в моем случае вариант с плагинами отпадает. Буду делать все в рамках одного проекта
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2017, 10:49

Создание контрола для отображения узлов графа
Доброго времени суток. Задали реализовать алгоритм Крускала и поэтапно. За два вечера родился...

Создание собственного элемента или шаблона для отображения информации
Передо мной стоит задача: организовать выведение списка объектов в специфическом виде. Каждый...

Динамическое создание типа для коллекции
Здравствуйте! Есть такая задумка, но не знаю как реализовать. Файл электронной таблицы, в...

Создание контрола для отображения табличных данных
Доброго времени суток. Требуется создать контрол для отображения однотипных данных, В моем...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru