Я пытаюсь привязать некоторые элементы управления к объекту - обычно это довольно простой процесс. К сожалению, если объект, который я привязки к наследуется от CollectionBase, привязка к тому, что классы полей вызывает ошибку:Привязка к свойству класса, полученного из CollectionBase
Cannot bind to the property or column Caption on the DataSource. Parameter name: dataMember
Удаление CollectionBase inheiritance делает этот вопрос уйти, но мне нужен этот объект как коллекция , Кажется, что CollectionBase приводит к тому, что свойства более высокого уровня становятся «независящими». Есть ли какое-то свойство, которое я могу переопределить, чтобы исправить это? Любые другие идеи?
Я нашел этот пример онлайн, который суммировал проблему довольно легко. К сожалению, мне еще предстоит найти ответ во всех местах, где я видел этот пример.
Код:
[STAThread]
static void Main()
{
TestCollection obj = new TestCollection();
using (Form f = new Form())
using (BindingSource bs = new BindingSource())
{
bs.DataSource = typeof(Test);
f.DataBindings.Add("Text", bs, "Caption");
bs.DataSource = obj; // breaks
//List<TestallData = new List<Test>();
//allData.Add(obj);
//bs.DataSource = allData;
f.ShowDialog();
}
}
class TestCollection : CollectionBase
{
public string Caption { get { return "Working"; } }
}
Почему вы устанавливаете DataSource дважды? Сначала введите, затем, к примеру. – abatishchev