Перемещение по записям. Объект CurrencyManager
Продолжим работу над проектом DataBindings. При выводе данных в виде отдельных записей необходимо реализовать возможность перемещения по записям. Это можно сделать с помощью экземпляра класса CurrencyManager. Располагаем на форме четыре кнопки и надпись в ряд следующим образом (рис. 3.4):
Рис. 3.4. Расположение кнопок
Устанавливаем следующие свойства элементов управления:
Кнопка | btnFirst | << |
Кнопка | btnPrevious | < |
Кнопка | btnNext | > |
Кнопка | btnLast | >> |
Надпись | lblRecordsPosition |
Объявляем экземпляр cmRecords класса CurrencyManager в классе формы:
CurrencyManager cmRecords;
В конструкторе формы Form1 связываем созданный объект cmRecords с таблицей "Туристы" объекта ds:
cmRecords = (CurrencyManager)BindingContext[ds, "Туристы"];
Создаем обработчиков для событий ItemChanged и PositionChanged объекта cmRecords:
cmRecords.ItemChanged+=new ItemChangedEventHandler(cmRecords_ItemChanged); cmRecords.PositionChanged+=new EventHandler(cmRecords_PositionChanged);
Вызываем метод, отображающий навигацию по записям:
DisplayRecordsPosition ();
Создаем этот метод:
private void DisplayRecordsPosition() { lblRecordsPosition.Text = "Запись " + (cmRecords.Position + 1) + " из " + cmRecords.Count; }
Добавляем методы, вызывающие метод DisplayRecordsPosition() в случае наступления событий ItemChanged и PositionChanged:
private void cmRecords_ItemChanged( object sender, ItemChangedEventArgs e) { DisplayRecordsPosition(); } private void cmRecords_PositionChanged( object sender, System.EventArgs e) { DisplayRecordsPosition(); }
Добавляем обработчиков для нажатий навигационных кнопок:
private void btnFirst_Click(object sender, System.EventArgs e) { cmRecords.Position = 0; }
private void btnPrevious_Click(object sender, System.EventArgs e) { cmRecords.Position--; }
private void btnNext_Click(object sender, System.EventArgs e) { cmRecords.Position++; }
private void btnLast_Click(object sender, System.EventArgs e) { cmRecords.Position = cmRecords.Count - 1; }
Запускаем приложение. Теперь можно перемещаться по записям (рис. 3.5):
Рис. 3.5. Форма с навигационными кнопками
В программном обеспечении к курсу вы найдете приложение DataBindings (Code\Glava2\DataBindings).