Технология Microsoft ADO.NET

       

Перемещение по записям. Объект CurrencyManager


Продолжим работу над проектом DataBindings. При выводе данных в виде отдельных записей необходимо реализовать возможность перемещения по записям. Это можно сделать с помощью экземпляра класса CurrencyManager. Располагаем на форме четыре кнопки и надпись в ряд следующим образом (рис. 3.4):


Рис. 3.4.  Расположение кнопок

Устанавливаем следующие свойства элементов управления:

Элемент Name Text
Кнопка 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).



Содержание раздела