Заполнение огромного объекта в winforms - PullRequest
2 голосов
/ 06 сентября 2010

У меня большой объект домена (только данные), который следует строгой схеме .xsd для проверки.Я пытаюсь позволить пользователю редактировать / создавать этот огромный объект, используя winforms, но я не уверен, что это самый простой способ сделать это.Я подумал о двух идеях: первая - привязать весь объект к различным элементам управления.Второй - как-то динамически создавать различные элементы управления, используя схему xsd (что довольно круто, потому что у меня есть около 60 различных текстовых полей со всевозможными выпадающими ответами).Есть ли хороший способ сделать это?Спасибо,

Ответы [ 3 ]

1 голос
/ 06 сентября 2010

Вы также можете взглянуть на элемент управления PropertyGrid.Он будет автоматически генерировать элементы управления в древовидной структуре.Я использую его, чтобы позволить пользователю редактировать файлы конфигурации (например).Инструмент XSD.exe поможет вам создать структуру объектов, необходимую для элемента управления PropertyGrid.

0 голосов
/ 06 сентября 2010

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

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

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

Я не думаю, что есть стандартное решение для того, что вам нужно, но реализовать динамические формы в WinForms довольно просто, поэтому все должно быть довольно просто.

0 голосов
/ 06 сентября 2010

Недостаточно информации. Серьезно - это НЕ вопрос программирования, это в первую очередь вопрос дизайна (например, дизайна интерфейса), и многое зависит от обстоятельств.

Пример: при наличии существующих форм, которые пользователи заполняют, может быть целесообразным использовать копирование формы, особенно если бумажная форма все еще распечатана и подписана или что-то в этом роде. В Infopath (часть Office) эта идея отсутствует.

Тогда LOT зависит от задействованных рабочих процессов.

Я не думаю, что есть действительно лучший / худший ответ с чисто технической точки зрения, игнорирующий то, что на самом деле находится в форме.

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