Я полагаю, что компромисс между использованием карты свойств и посетителя - это класс, реализующий, что посетитель должен знать обо всех возможных свойствах, тогда как код, который имеет дело с картой, может быть независимым от содержимого формы / БД .
С посетителем вы получаете выгоду от того, что ваш код не компилируется, когда в структуру добавляются новые виды данных, поэтому компилятор может помочь вам, если вы изменяете сложную структуру.
Преимущество со свойствами может привести к меньшему количеству кода без необходимости вообще менять средний уровень, если новые поля или элементы управления добавляются позже, в зависимости от того, насколько универсальным вы можете сделать этот код.
Полагаю, есть и другие альтернативы, но я думаю, что подход с использованием посетителей имеет смысл. Вероятно, есть определенные для элемента управления вещи, которые вы хотите сделать, например, специализированная проверка, которую будет сложнее в общем случае кодировать, поэтому задача будет проще и должна хорошо предотвращать скрытые ошибки из-за изменений в структуре элемента управления.