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