Есть ли лучший вариант, чем DataGridView для повторения данных WinForms?

Я столкнулся с необходимостью ввода «неоднородных» данных в приложение 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 будет элементом, который ищет варианты «ГДЕ Class = 'ClassD' и Sub = 'Sub1 '".

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


person Godeke    schedule 30.01.2009    source источник


Ответы (2)


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

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

person user61079    schedule 31.01.2009
comment
Я не большой поклонник ссылок, просто указывающих на случайные загрузки .exe, которые начинаются, когда я нажимаю на ссылку. может быть, вы хотите вместо этого поставить лайк на сайт загрузки или что-то подобное? - person Neuron; 11.10.2017

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

person Marc Gravell    schedule 31.01.2009