Реклама:

v[dataGrid2.CurrentRowIndex][i] =

v[dataGrid2.CurrentRowIndex][i].ToString().ToUpper();

И в первом, и во втором, и в третьем случае результат будет один и тот же (рис. 4.17).

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

рис. 4.17

4.1.7. Cвойство Position и текущий элемент в ListBox, CheckedListBox, ComboBox

Элементы управления ListBox, CheckedListBox, ComboBox используются для связывания со столбцом данных (см. рис. 4.1).

При смене текущего элемента списка для объектов ListBox, CheckedListBox, ComboBox наступает событие SelectedlndexChanged. В обработчике этого события свойства SelectedItem, SelectedValue перечисленных выше объектов указывает на строку (объект DataRowView) просмотра, ассоциированную с текущей в источнике данных.

Пример. Пусть элементы управления dataGridl и listBoxl связаны с таблицей Kaf набора данных dsl. При смене текущего элемента в списке listBoxl происходит смена позиции в источнике данных. Используя обработчик события SelectedIndexChanged объекта listBoxl, будем выдавать в элементы управления textBoxl и textBox2 сведения о текущей записи источника данных.

private void listBox1_SelectedIndexChanged(object sender,

System.EventArgs e)

{

System.Data.DataRowView selltem =

(System.Data.DataRowView)listBoxl.Selectedltem; textBoxl.Text = "Выбрана запись с KK = " + selItem["KK"].ToString();

System.Data.DataRowView selValue =

(System.Data.DataRowView)listBoxl.SelectedValue; textBox2.Text = "Выбрана запись с KK = " + selValue["KK"].ToString(); }

Результат показан на рис. 4.18

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

рис 4.18

4.1.8. Особенности связывания обычных массивов

Обычный массив (т. е. массив значений - типа int, string и пр.) можно без труда связывать с элементами типа ListBox, ComboBox и пр. Связывание массива и элемента управления DataGrid требует некоторых усилий.

Пример. Связать обычный строковый массив аЕЮ и элемент управления

Б^ЛпдП аПО = {"Иванов", "Петров", "Сидоров"};

1istBox1.DataSource = аПО; Результат показан на рис. 4.19.

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

рис. 4.19

Элемент управления DataGrid может предоставлять доступ лишь к общедоступным (public) свойствам объектов.

Каждый элемент массива - размерного типа (value type). А у объектов размерных типов общедоступных свойств нет. Поэтому "связывание в лоб" элемента управления DataGrid и массива, состоящего из размерных значений, обречено на неудачу.

Пример. Попробуем связать массив значений с элементом управления DataGrid так же, как это делалось в предыдущем примере:

string[] aFIO = {"Иванов", "Петров", "Сидоров"};

dataGrid1.DataSource = aFIO;

Результат показан на рис. 4.20. Вряд ли он нас устроит.

рис. 4.20

Чтобы массив можно было связать с элементом управления DataGrid, от значений размерных типов в массиве нужно перейти к ссылочным типам и снабдить их общедоступным свойством, выдающим во внешний мир значение объектов.

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

Пример. Зададим класс Stroka (ссылочный тип):

public class Stroka {

protected string sZnachenie; public Stroka (string val){ sZnachenie = val;

}

public string Znachenie {

get {return sZnachenie.ToUpper();}


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