Диалог конструируется на лету, в базе есть описание названий полей и их типа ( текст, дата, крыжик и т.п. ) — по сути тип контрола ( TextBox, CheckBox ).
Нужно добавить также описание связи между элементами, например :
— зависимость видимости некоторых полей от состояния крыжика или combobox,
— граничные значения также в зависимости от других значений.
— обязательные поля ( в зависимости от состояния поле может стать не обязательным для заполнения )
Т.е. нужна некая семантика для описания динамических валидаторов и видимости.
Скорее всего это описание будет хранится дополнительной колонкой в БД в виде строки, но не исключаю и другие способы.
Как это лучше сделать на wpf ? Есть ли какие-то наработки в этой технологии облегчающие задачу или нужно что-то придумать самому.
Re: Динамический диалог и описание связи элементов
Здравствуйте, Visor2004, Вы писали:
V>Я хз, что такое крыжик
Полагаю, чекбокс.
Re[2]: Динамический диалог и описание связи элементов
От:
Аноним
Дата:
28.01.11 18:16
Оценка:
Здравствуйте, Visor2004, Вы писали:
V>Здравствуйте, Аноним, Вы писали:
V>Я хз, что такое крыжик, но если речь идет о стандартных контролах, то надо смотреть в сторону ItemsControl и DataTemplateSelector
DataTemplateSelector не совсем то что нужно, т.к. он кодируется жестко, возможно я что-то еще не вкусил из его способов использования.
А именно как DateTemplateSelector описать в том же Xaml, например что при выборе значения = 1 , определенные контролы должны стать Enabled = false.
Допустим на условия Enable/Disable будут описаны триггеры в XML и сохранены в базе данных. При динамическом создании триггеры будут подтягиваться из базы.
Вот почему-то такой триггер не срабатывает. Точнее валится с ошибкой — просит переделать на EventTrigger, а мне нужен как раз по Condition, в Event триггерах не нашел условия запуска.
DataTemplateSelector, не sealed, а значит от него можно наследоваться и навернуть там любую, сколь угодно сложную логику выбора шаблона, вплоть до райнтайм генерации шаблона по переданному объекту ( только если полная безнадега такое можно делать ).
По поводу вашего кода, напрямую к элементу можно прицепить только EventTrigger, остальные типы триггеров доступны только из стилей и шаблонов. Я не зря кинул ссылку на DataTemplateSelector, изучите внимательно, что он предлагает и я думаю вы решите свою проблему.
Re[4]: Динамический диалог и описание связи элементов
От:
Аноним
Дата:
29.01.11 17:16
Оценка:
Здравствуйте, Visor2004, Вы писали:
V>Здравствуйте, Аноним, Вы писали:
V>DataTemplateSelector, не sealed, а значит от него можно наследоваться и навернуть там любую, сколь угодно сложную логику выбора шаблона, вплоть до райнтайм генерации шаблона по переданному объекту ( только если полная безнадега такое можно делать ). V>По поводу вашего кода, напрямую к элементу можно прицепить только EventTrigger, остальные типы триггеров доступны только из стилей и шаблонов. Я не зря кинул ссылку на DataTemplateSelector, изучите внимательно, что он предлагает и я думаю вы решите свою проблему.
Все таки не совсем понятно , DataTemplate применим к ItemsControl, в случае динамического диалога нет ItemsControlа, просто все контролы размещаются в Grid. В базе прописаны координаты в сетке для textbox, checkbox и т.д. к которым DataTemplate также нельзя применить.
Re[5]: Динамический диалог и описание связи элементов