Я сталкиваюсь с необходимостью ввода «рваных» данных в 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 ?