Я пытаюсь сделать простую привязку данных к экземпляру объекта. Примерно так:
public class Foo : INotifyPropertyChanged
{
private int bar;
public int Bar { /* snip code to get, set, and fire event */ }
public event PropertyChangedEventHandler PropertyChanged;
}
// Code from main form
public Form1()
{
InitializeComponent();
Foo foo = new Foo();
label1.DataBindings.Add("Text", foo, "Bar");
}
Это работает, пока я не изменю класс Foo для реализации IEnumerable, где T - это int, string, что угодно. В этот момент я получаю ArgumentException при попытке добавить привязку данных: Невозможно привязать свойство или столбец Bar в DataSource.
В моем случае меня не волнует перечисление, я просто хочу привязать к не перечисляемым свойствам объекта. Есть ли чистый способ сделать это? В реальном коде мой класс не реализует IEnumerable, а базовый класс в нескольких слоях вверх по цепочке.
Лучший обходной путь, который у меня есть на данный момент, состоит в том, чтобы поместить объект в список связывания только с одним элементом и связать с ним.
Вот два связанных вопроса: