Старейшина
Зарегистрирован: 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!
|
|