Реклама:

Некоторые элементы управления, например DataGrid, ListBox, ComboBox, изменяют значения свойства Position, когда пользователь перемещает указатель с одной записи на другую. Другие элементы управления (TextBox, Label и пр.) такой способностью не обладают.

Рассмотрим рис. 4.2 и 4.3. Пусть таблица данных Kaf связана с элементами управления DataGrid, Label, TextBox, CheckBox. При изменении текущей строки в элементе управления DataGrid изменяется и значение позиции соответствующего объекта CurrencyManager, что приводит к пересинхронизации значений в других связанных элементах управления.

ÜForml

 

Таблица Kaf

 
Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 4.2

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 4.3

Изменение свойства Position объекта CurrencyNamager сопровождается наступлением события PositionChanged для этого объекта.

Пример. Используя событие PositionChanged, при смене позиции в таблице Kaf набора данных ds1 выводить номер позиции в элементе управления типа Label с именем lbl_CurPosition.

//---переменная под объект CurrencyManager

private System.Windows.Forms.CurrencyManager cm;

//---получаем CurrencyManager, связанный с табл. Kaf набора данных ds1

cm = (System.Windows.Forms.CurrencyManager)this.BindingContext[ds1, "Kaf"];

//---связываем его с обработчиком события PositionChanged

cm.PositionChanged += new EventHandler(this.KafPosition_Changed);

//---обработчик события смены позиции в таблице Kaf

private void KafPosition_Changed(object sender, EventArgs e) {

lbl_CurPosition.Text = cm.Position.ToString();

}

4.1.5. Связывание отдельных элементов управления

Связать источник данных и элемент управления можно двумя способами:

• на этапе разработки приложения - путем задания значений свойств DataSource и DataMember (или DisplayMember);

• программно на этапе выполнения приложения, добавив элемент - объект типа Binding в коллекцию DataBindings элемента управления.

4.1.5.1. Связывание при помощи свойств DataSource и DataMember (или DisplayMember)

Связывание элемента управления DataGrid

При связывании элемента управления DataGrid источник данных задается в свойстве DataSource.

Раздел источника данных может указываться в свойстве DataMember.

Если источником данных служит просмотр или таблица данных, то значение свойства DataMember элемента управления DataGrid указывать необязательно.

Если в качестве источника данных для DataGrid выступает набор данных или менеджер просмотров, то значение свойства DataMember элемента управления DataGrid можно как указывать, так и не указывать. Если название свойства DataMember указано, то DataGrid показывается содержимое раздела данных (таблицы данных, или отношения для набора данных, или просмотра для менеджера просмотров). Если названное свойство не указано, то DataGrid изначально представляется с пустой структурой, т. е. не имеет столбцов (рис. 4.4). Если раскрыть узел, нажав на крестик в единственной ячейке грида, то получим список имен всех таблиц, входящих в набор данных (рис. 4.5).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 4.4 рис 4.5

Выбрав в списке имя одной из таблиц, в DataGrid получим нормальное представление записей и столбцов этой таблицы (рис. 4.6). Обратим внимание на то, что в строке заголовка DataGrid справа показывается символ стрелки. Если нажать на нее, мы снова вернемся к состоянию грида, показанному выше на рис. 4.5.


⇐ Предыдущая страница| |Следующая страница ⇒