Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Игорь Т.


Старейшина

Зарегистрирован:
29 September 2002
Сообщения: 647
Примеры кода: 2
 

RE: Интересный вопрос

20 January 2005 14:23  


зачем нужно this.BindingContext?
this - WindowsForm
для исспользования CurrencyManeger?


И для этого тоже... В принципе, это список "синхронизаторов" двух экземляров чего-то там. Например, датасета и датагрида, или текстбокса и дататейбла.... С помощью которого можно управлять ентой синхронизацией.

Если датасорс - это список, то BindingContext вернет тебе эземпляр CurrencyManeger и с его помощью ты сможешь управлять, например, текущей позицией айтема в источнике данных. Например, есть тестбокс, есть дататейбл... и кнопки "Next" и "Previous"...

Сначала ты говоришь:

textBox1.DataBindings.Add("Text", myTable, "CompanyName");

что означает "свяжи мне свойство Text моего контрола со значением свойства CompanyName экземпляра myTable". Т.е. как только будет менятся значение CompanyName - это автоматически отразится в текстбоксе. И наоборот - изменяя Text в текстбоксе, ты, фактически, НАПРЯМУЮ меняешь значение CompanyName. Все это на автомате делается.

И т.к. myTable - это не просто айтем а список айтемов - то и свзявание будет осуществлятся с помощью CurrencyManeger. Ведь нет же у DataTable свойства CompanyName.

Например ( (CurrencyManager)this.BindingContext[myTable] ).Position ++; сместит указатель на текущий отбражаемый DataRow из myTable на единицу...

Еще один случай. Есть 2 текстбокса. textbox1 и textbox2

Говорим им:
textBox1.DataBindings.Add("Text", textBox2, "Text");

т.е. как только ты что-то впишешь в однин текстбокс - это же ты увидешь и во втором. И наоборот.

В этом случае через BindingContext ты получишь уже не CuurencyManager а PropertyManager. Потому как в качестве источника данных для связывания является не список айтемов, а единичный экземпляр.

С его помощью можно выполнять те же фичи, что и с CurrencyManager. Только разве что с учетом, что у тебя нет списка айтемов.
Но затом можно юзать такие методы, как CancelCurrentEdit... сам понял, для чего, ну и т.д.
We take I.T. easy!
Наверх
  



ADO.NET

 Интересный вопросkit  20 January 2005 02:34
 RE: Интересный вопросИгорь Т.  20 January 2005 14:23
 RE[2]: Интересный вопросkit  20 January 2005 23:49
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта