Создание формы с дополнительными динамическими полями, указанными заказчиком, параметры? - PullRequest
0 голосов
/ 10 января 2011

У нас есть настольное приложение, которое в основном моделирует работу для определенного сектора (например, Транспорт) с такими вещами, как дата работы, ссылки, распределение драйверов и т. Д., Которое затем отправляется на / с КПК для обновления статуса.

Хотя это в основном готово, нам обычно приходится выполнять заказные детали, чтобы удовлетворить потребности компании, которая в 90% случаев использует только дополнительные поля данных, которые на самом деле не требуют никакой логики, только хранение / поиск.

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

Это лучший способ просто бросить мой или я пропустил библиотеку, которая поможет мне добраться до 60% пути?Будем признательны за помощь в WPF или Winforms (мы используем Winforms, но переходим к WPF).

Cheers,

Thomas

1 Ответ

0 голосов
/ 10 января 2011

Я бы посоветовал вам написать свой собственный.В самом простом случае формы с вертикальным списком помеченных элементов управления мой интуитивный подход должен иметь объект данных, который состоит из упорядоченного списка пар строк-объектов (возможно, сделать его тройным с правилом проверки),когда форма должна быть загружена, каждый тип объекта проверяется, и если это строка, вы создаете текстовое поле, если это bool, вы создаете флажок и т. д. Вы также можете иметь проверку ввода, если у вас есть int и удваивается, например.Другое направление не должно быть слишком сложным.Ранее я писал полудинамические общие диалоговые окна редактирования, например, следующее:

EditDialog diag = new EditDialog();
TextBox firstName = diag.AddTextBox("First Name:", new StringValidationRule());
TextBox lastName = diag.AddTextBox("Last Name:", new StringValidationRule());
TextBox age = diag.AddTextBox("Age:", new IntegerValidationRule(1,int.MaxValue));
if ((bool)diag.ShowDialog())
{
    //parse texts and write them to some data;
}

С некоторыми пользовательскими конструкторами, кнопками редактирования и т.п. я уверен, что вы сможете превратить его в полностью динамичный диалог.В зависимости от того, насколько сложным должен быть макет, это может быть более или менее трудоемким.Конечно, найти библиотеку, которая делает именно это, было бы проще, может быть, кто-то другой знает ее.

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