Я новичок в привязке данных.
У меня есть эти классы:
public class Foo : List<Bar>
{
public string FooName { get; set; }
}
public class Bar
{
public string BarName { get; set; }
public string BarDesc { get; set; }
}
И у меня есть List<Foo>
Я хотел бы иметь Foo
элементы в ComboBox
и Bar
элементы в ListBox
. Когда я изменяю выбранный элемент в ComboBox
, я хочу, чтобы ListBox
изменился. Когда я изменяю выбранный элемент в ListBox
, я хотел бы иметь TextBox
, заполненный BarDesc
.
Выполняется только для ListBox
и ComboBox
:
comboBox1.DataSource = foos;
comboBox1.DisplayMember = "FooName";
listBox1.DataBindings.Add("DataSource", foos, "");
listBox1.DisplayMember = "BarName";
Я не могу теперь привязать выбранное свойство Bar
в ListBox
к TextBox.Text
. Возможно, добавленная привязка для listBox1
- не очень хорошая идея.
Может быть, я должен сделать что-то вроде этого:
((CurrencyManager)listBox1.BindingContext[foos]).CurrentChanged += new EventHandler((o, a) =>
{
textBox1.DataBindings.Clear();
textBox1.DataBindings.Add("Text", listBox1.DataSource, "BarDesc");
});
Как я могу решить свою проблему?