Я не уверен, что интерфейсы помогут вам здесь много. Я понимаю, что вы разбиваете страницу вниз на набор «составных» пользовательских элементов управления, которые содержат другие элементы управления, и вы хотите решить, использовать ли свойства для установки значений.
Я думаю, это зависит от того, как настраиваются пользовательские элементы управления и динамически добавляются ли они на страницу и т. Д. (Один из возможных сценариев). У меня есть личное предпочтение для указания материала в конструкторе или использования фабричного метода для создания элементов управления. Я беру на себя ответственность за создание, чтобы убедиться, что все установлено. Мой опыт работы со свойствами заключается в том, что я иногда забываю что-то сделать и не осознавать свою ошибку. Ваша мысль о настройке свойств или использовании суб, и все, что заполняется, не имеет для меня большого смысла. Если у вас есть какая-то зависимость и нужно что-то еще загружать, это может произойти независимо от того, является ли это свойством или подпунктом.
Я хотел бы обратиться к любой книге на VB.NET/C#/OOP, чтобы увидеть синтаксис для интерфейсов. Интерфейсы в основном описывают контракт для класса. Если у вас есть класс A и B, и оба реализуют интерфейс, называемый ITime, то оба предоставят все методы, определенные в ITime. Они могут по-прежнему добавлять свои собственные методы, но они должны, как минимум, включать реализацию методов ITime (например, мы могли бы использовать GetDate(), GetCurrentTime() как методы в ITime). Интерфейс не указывает классу A или B, как эти методы должны работать - просто их имя, параметры и тип возврата. Поиск наследования в книге ООП для получения дополнительной информации о том, как наследование интерфейсов отличается от наследования реализации.