Есть ли причина, по которой вы хотите избежать использования механизма привязки данных .NET? Он поддерживает сохранение паритета между значением элемента управления и значением свойства класса и предоставляет расширенную поддержку во время разработки.
Вы можете взаимодействовать с механизмом привязки данных двумя способами: либо программно, либо через конструктор. Выполнить привязку основных данных программно тривиально. Скажем, у меня есть класс с именем «FooClass» со строковым свойством с именем «MyString». У меня есть TextBox с именем myTxtBox в форме с экземпляром FooClass с именем foo, и я хочу связать его со свойством MyString:
myTxtBox.DataBindings.Add("Text", foo, "MyString");
Выполнение этого приведет к тому, что обновления TextBox будут присвоены свойству, а изменения свойства из другого места будут отражены в TextBox.
Для более сложных сценариев привязки данных вы, вероятно, захотите создать объектный источник данных в своем проекте и добавить в форму BindingSource. Если вам нужна помощь с конкретными шагами по созданию источника данных, я могу помочь, но в целом вы создадите источник в своем проекте и выберите класс, к которому вы хотите привязать. Затем вы можете разместить BindingSource в своей форме, указать его на источник данных вашего объектного проекта, а затем использовать конструктор Visual Studio, чтобы связать свойства ваших элементов управления со свойствами вашего объекта. Затем вы устанавливаете свойство DataSource в своем коде для экземпляра класса или коллекции, к которой хотите привязаться.
В качестве примечания, насколько мне известно, не существует "делегата свойства", поскольку свойства на самом деле являются парами функций (get_ и набор _).
UPDATE:
Читая ваши комментарии, я хотел бы отметить, что привязка данных .NET, даже на уровне управления, НЕ использует автоматическое отражение. Привязка данных строится вокруг дескрипторов типов и дескрипторов свойств как для привязанного элемента управления, так и для источника данных. Это правда, что если одна или обе из этих сторон не реализуют определенное описание свойства и типа, тогда будет использовано отражение, но любая из сторон более чем свободна предоставить свой собственный профиль описания, который НЕ будет использовать отражение.