Я знаю, что это широкая тема, но, пожалуйста, выслушайте меня.
У меня есть несколько случаев, когда мне нужно редактировать набор связанных свойств. Некоторые из них являются свободным текстом, другие могут быть целыми числами или паролями, а многие другие имеют предопределенные параметры (поле выбора). Мне в основном нужен контейнер, который повторяет строки текста слева с элементом управления справа.
Я не могу использовать PropertyGrid, потому что у меня не всегда есть экземпляр, и у меня возникли некоторые трудности с пониманием всех атрибутов ipropertyeditorservice и помощников, которые ему нужны.
Я не мог использовать DataGrid или DataGridView, потому что они основаны на столбцах. Каждой строке может потребоваться отдельный тип элемента управления, поэтому столбец, заполненный каким-либо одним типом элемента управления, бесполезен.
Я пытался расширить ListView, где я застрял прямо сейчас. Его владелец обращается и рисует элементы управления в границах второго столбца. Это выглядит хорошо, но фиксированная высота строки Microsoft является проблемой. Я думаю, что это идет вне списка изображений или шрифта, который даже текстовое поле и комбинированный список не могут согласовать, чтобы измерить их одинаковым образом и забыть о контрольном списке или чем-то еще. Я имею в виду, что это обычно выглядит нормально для однострочных элементов управления на моих конкретных настройках рабочего стола, но я не могу контролировать перекрытие при каждом разрешении.
Единственная другая идея, которую я придумал самостоятельно (кроме отказа от чего-либо или извлечения чего-то нестандартного и некрасивого из System.Windows.Forms.Control), заключается в том, чтобы объединить все эти субконтроли в TableLayoutContainer. В основном это решает странную проблему с высотой, но я теряю функции заголовка и прокрутки в ListView.
Я искал альтернативу неделями и просто не могу ее найти. Все заново открыли сетку данных и список-как-сетку данных, даже коммерческие решения. Я не могу поверить, что не существует простой замены тому, что делает PropertyGrid. Мой ListView - лучший из плохих партий ... что еще я могу сделать?