WinForms: автоматизация рутинной работы - PullRequest
0 голосов
/ 24 августа 2009

При добавлении элемента управления в мою форму в настоящее время я должен соединить его со своим кодом сохранения и загрузки, со своими внутренними структурами данных, и я должен сделать это со всеми своими элементами управления. Этот сценарий серьезно нарушает принцип СУХОЙ (не повторяйся) и может привести к незначительным ошибкам.

Мне пришла в голову идея обойти все элементы управления в цикле foreach, ключом будет свойство Name, а значение Text (или что-то еще, в зависимости от типа) будет значением в словаре (фильтрация для ввода пользователем). контролирует во время процедуры). Таким образом, мне придется сериализовать / десериализовать словарь, чтобы сохранить / загрузить его.

Итак, почему я спрашиваю? Я новичок, и я думаю, что есть более проверенные и проверенные методы для решения той же задачи, чем я придумал.

И извините за мой неуклюжий английский, мне не повезло выучить его как мой родной язык.

Спасибо за вашу помощь

примечание: я знаю о WPF, но я должен придерживаться .net 2.0

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Уже есть хорошие примеры для этого, см. RealPosition . Мы изменили этот источник для сохранения формы / контроля положения в нашем проекте, просто поместив компонент в форму в конструкторе и указав там необходимые свойства. Посмотрите на интерфейсы IExtenderProvider и ISupportInitialize на MSDN.

0 голосов
/ 24 августа 2009

В идеале вы хотите, чтобы все элементы управления наследовали от базового класса, тогда базовый класс может справиться со всем этим при инициализации каждого элемента управления. Если вам нужен словарь, то передайте словарь в метод, затем метод может установить все различные свойства, требуемые для элемента управления.

Если каждый элемент управления наследуется, то логика является общей и СУХОЙ:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...