Re[4]: Проблема с DataBindings
От: 4wd Россия  
Дата: 27.09.05 11:12
Оценка:
Здравствуйте, andreich78, Вы писали:

A>...понятно, что ничё не понятно...

A>посмотри на экземпляр биндинга какого-нить контрола в момент после EndCurrentEdit. убедись, что его BindingManagerBase совпадает с this.BindingContext[fPersonFull]
A>посмотри на dataGrid.BindingContext[dataGrid.DataSource,dataGrid.DataMember], сравни его с this.BindingContext[fPersonFull]
A>если всё совпадает — тогда вообще не понятно.
A>и опиши алгоритм привязывания биндингов.

Написал
            BindingManagerBase bm = this.BindingContext[fPersonFull];
            this.BindingContext[fPersonFull].EndCurrentEdit();
            if (textBox1.BindingContext[fPersonFull] == bm)
                MessageBox.Show("Equals!");
            else
                MessageBox.Show("FUCK!");
            if (dataGrid1.BindingContext[fPersonFull] == bm)
                MessageBox.Show("Equals 2!");
            else
                MessageBox.Show("FUCK 2!");
            this.BindingContext[fPersonFull].AddNew();

Получил что все равны.
А что до алгоритма привязывания биндингов...
При запросе пользователя таблица fPersonFull получается через сеть. Там одна запись. После чего всем контролам на форме очищается DataBinding и назначается снова из таблицы fPersonFull:
textBox1.DataBindings.Clear();
textBox1.DataBindings.Add("Text",fPersonFull,"LastName");

По нажатию на кнопку "Новая запись" вызывается то что написал в самом начале этого сообщения. При этом в грид добавляется строка, из (null)-значений. Все замечательно. Только курсор остается на прежнем месте. И в контролах соответственно отображается старая запись.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.