Для получения дополнительных классов, основанных на базовом классе I decided, необходимо иметь базовый UserControl и производные для каждого производного класса (для визуализации; поле справа от изображения).Обобщенные настройки UI + классы настроек
Теперь каждый из полученных UserControls имеет определенные настройки (красный прямоугольник слева). Пользовательский интерфейс настроек - это отдельный UserControl (можно перемещать свободно, помещать в отдельный диалог, если он слишком большой ...) и имеет базовый класс данных который он меняет (экземпляр этого класса является членом основного UserControl).
alt text http://a.imageshack.us/img651/2710/46937664.png
Это подводит меня к созданию отдельного класса холдинга (и, возможно, спасая) данные настройки, отдельное UserControl установить значение и подключить его вручную все вместе.
Это не первый раз, когда я сталкиваюсь с подобной проблемой, поэтому я начал думать о каком-то интерфейсе класса +, позволяющем легко создавать классы хранения данных и создавать пользовательские элементы управления. Моя идея что-то вроде
class SettingsItem
{
string name;
TypeEnum type;
double value; //how about different types eg. bool? Inheritance?
}
Класс настроек был бы списком этих элементов. Для каждого типа будет одно значение UserControl (checkbox/textbox/numericfield + description). A foreach
цикл будет создавать конечный UserControl (одно значение UCs один под друг друга).
С одной стороны, мне нравится эта идея как интригующая задача и возможное облегчение скучного, повторяющегося и трудоемкого размещения меньших квадратов в более крупные и выравнивания их. С другой стороны, мне кажется, что я убиваю муху дробовиком.
Есть ли какое-то стандартное/готовое решение для этого? Любой лучший способ сделать это? Или это слишком сложное решение проблемы? Я буду рад видеть любые ответы, предложения, замечания ...