хочу создать настраиваемое приложение
От: Molot  
Дата: 09.10.09 08:32
Оценка:
хочу создать настраиваемое приложение. использовать хочу файл xml для хранения, его загружаю в treeview и обрабатываю в propertygrid. так вот файл я загрузил в treeview, при выборе узла загрузил свойства в propertygrid. но не могу вкурить что делать когда меняют что-то в propertygrid. как такое обрабатывается в случае с базой данных понятно — через адо (fill и т.п.). Какие идеи можете мне подсказать, может есть какая статья, или книга. Где временные данные лучше хранить — в оперативке или в базе какой?
Re: хочу создать настраиваемое приложение
От: Niswn  
Дата: 09.10.09 09:24
Оценка:
Здравствуйте, Molot, Вы писали:

M>хочу создать настраиваемое приложение. использовать хочу файл xml для хранения, его загружаю в treeview и обрабатываю в propertygrid. так вот файл я загрузил в treeview, при выборе узла загрузил свойства в propertygrid. но не могу вкурить что делать когда меняют что-то в propertygrid. как такое обрабатывается в случае с базой данных понятно — через адо (fill и т.п.). Какие идеи можете мне подсказать, может есть какая статья, или книга. Где временные данные лучше хранить — в оперативке или в базе какой?


Ну смотря сколько настроек. Если настроек на гиг оперативки, то определенно лучше в оперативной памяти это не хранить. Хотя не думаю, что у вас настроек так много, поэтому я бы сделал так:
1. Загрузил бы настройки из XML файла в XmlDocument.
2. Построил бы TreeView на его основе, привязав к каждому элементу дерева ссылку на XMLNode из XmlDocument.
3. Дальше просто. При выборе элемента дерева, читаем свойства из привязанной к элементу XMLNode в PropertyGrid. Затем, когда пользователь меняет свойство, сохраняем эти изменения в XmlNode.
4. Когда пользователь закончил редактировать и нажал OK, сохраняем XmlDocument в файл. Если нажал Отмена, не сохраняем изменения в файл.

PS. Для хранения настроек обычно используется app.config. В .NET есть классы, которые работают с этими настройками, позволяют их считывать и менять программно, что гораздо легче, чем самому реализовывать подобную логику. Может это вам больше подойдет?
ICQ: 326084932
Re: хочу создать настраиваемое приложение
От: _Raz_  
Дата: 09.10.09 10:04
Оценка: 3 (1)
Здравствуйте, Molot, Вы писали:

M>хочу создать настраиваемое приложение. использовать хочу файл xml для хранения, его загружаю в treeview и обрабатываю в propertygrid. так вот файл я загрузил в treeview, при выборе узла загрузил свойства в propertygrid. но не могу вкурить что делать когда меняют что-то в propertygrid. как такое обрабатывается в случае с базой данных понятно — через адо (fill и т.п.). Какие идеи можете мне подсказать, может есть какая статья, или книга. Где временные данные лучше хранить — в оперативке или в базе какой?

Конфигурирование .NET-приложений. Хранение и редактирование настроек.
Автор(ы): Андрей Корявченко
Дата: 12.05.2003
Не секрет, что практически каждое приложение требует каких-то настроек. Данная статья рассказывает об одном из возможных способов реализации механизма их хранения и редактирования. Исходные коды взяты из реального приложения, RSDN@Home, оффлайн-клиента для форумов www.rsdn.ru.
... << RSDN@Home 1.2.0 alpha 4 rev. 1245>>
Re[2]: хочу создать настраиваемое приложение
От: Molot  
Дата: 15.10.09 18:55
Оценка:
N>3. Дальше просто. При выборе элемента дерева, читаем свойства из привязанной к элементу XMLNode в PropertyGrid. Затем, когда пользователь меняет свойство, сохраняем эти изменения в XmlNode.
N>4. Когда пользователь закончил редактировать и нажал OK, сохраняем XmlDocument в файл. Если нажал Отмена, не сохраняем изменения в файл.

N>PS. Для хранения настроек обычно используется app.config. В .NET есть классы, которые работают с этими настройками, позволяют их считывать и менять программно, что гораздо легче, чем самому реализовывать подобную логику. Может это вам больше подойдет?


N>3 Не совсем понял как при изменении свойства менять xmlnode. Как подключить событие при изменении свойства PropertyGrid?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.