Есть ли лучший вариант, чем DataGridView для повторения данных WinForms? - PullRequest
2 голосов
/ 30 января 2009

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

Мой вопрос: есть ли лучший способ обработки данных, который не так регулярно, так как DataGridView оптимизирован для поддержки. Я знаю, как использовать «EditingControlShowing» для обновления выпадающих списков на основе ранее введенной информации, но не слишком ли это хак?

Чтобы визуализировать некоторые примеры данных, которые необходимо ввести:

Class  | Sub Class        | Company        | Bill Amount | Commission % 
ClassA | ClassA.Sub1      |                | $  1,500.00 |    12%
ClassB |                  |                | $    250.00 |     0%
ClassC |                  | ClassC.C1      | $    450.00 |     0%
ClassD | ClassD.Sub1      | ClassD.Sub1.C1 | $    800.00 |    12%

Я использую пунктирную нотацию, чтобы указать, что поля со списком зависят от элементов, которые поставлены перед ними (поэтому ClassD.Sub1.C1 будет элементом, который просматривал варианты выбора "WHERE Class = 'ClassD' и Sub = 'Sub1' ".

Я взломал DataGridView, чтобы заставить его работать, но он кажется ужасно уродливым. Есть ли способ лучше? Какой элемент управления / метод вы бы использовали для представления данных, которые варьируются от строки к строке в WinForms ?

Ответы [ 2 ]

2 голосов
/ 31 января 2009

Как насчет SourceGrid ? Я не использовал его в производстве, но я играл с ним, и он кажется довольно гибким.

1 голос
/ 01 февраля 2009

Возможно, управление повторителем даст вам необходимую гибкость, http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx.

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

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