Я использую winforms, и у меня есть comboBox, который представляет IQueryable. Ниже в поле со списком находится ряд текстовых полей, которые я хотел бы привязать к выбранному в данный момент из поля со списком.
Вот мой код.
public partial class TestForm : Form
{
public DataClassesDataContext DataContext;
public IQueryable<T> datasource;
// Ctor
public TestForm()
{
InitializeComponent();
// L2S data context
this.DataContext = new DataClassesDataContext();
// Get the variable for the data source
this.datasource = this.DataContext.Ts;
// setup the binding for the combobox
this.comboBox1.DataSource = this.datasource;
this.comboBox1.DisplayMember = "Description";
this.comboBox1.ValueMember = "Id";
// assign the databindings of the text boxes to the selectedItem of the combo box
// this is where the problem is, afaik
TId.DataBindings.Add(new Binding("Text", this.comboBox1.SelectedItem, "Id"));
TUser.DataBindings.Add(new Binding("Text", this.comboBox1.SelectedItem, "User"));
TDescription.DataBindings.Add(new Binding("Text", this.comboBox1.SelectedItem, "Description"));
}
Выполнение этого связывает все, когда я изменяю значения в текстовых полях, он прекрасно обновляет первоначально выбранный элемент в поле со списком. Даже когда я меняю описание, он обновляет отображаемый текст в виде сообщения, все это замечательно.
Однако, когда я выбираю другой элемент из выпадающего меню, текстовые поля не привязываются к этому вновь выбранному элементу, они остаются привязанными к старому.
Нужно ли удалять и повторно добавлять мои привязки каждый раз, когда выбор изменяется в поле со списком?