Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о привязке массива объектов к элементу управления DataGrid.
Исходная версия продукта: Visual C#
Исходный номер базы знаний: 315786
Итоги
Пример в этой статье состоит из формы Windows с элементом управления DataGrid для отображения значений свойств объекта и четырех кнопок для просмотра строк элемента управления DataGrid.
Требования
В этой статье предполагается, что вы знакомы со следующими разделами:
- Основные понятия программирования Visual C#
- Visual C# .NET
Проектирование класса
Класс, привязанный к элементу управления, должен иметь методы доступа к свойствам. Любое свойство, которое должно быть привязано, должно иметь метод свойства Set и метод свойства Get . В примере класса, используемого в этой статье, есть три члена. В этой статье описано только один член. Также был предоставлен параметризованный конструктор. Однако это не обязательно.
public class guitar
{
private string make;
private string model;
private short year;
public guitar()
{
}
public guitar(string make, string model, short year)
{
Make=make;
Model=model;
Year=year;
}
public string Make
{
get
{
return make;
}
set
{
make = value;
}
}
}
Добавление экземпляров классов в массив
Чтобы создать экземпляры и добавить их в массив, выполните следующие действия.
Объявите массив.
Создайте экземпляры класса и добавьте экземпляры в массив.
private guitar[] arr=new guitar[3]; arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971);
Привязка массива к элементу управления DataGrid
После заполнения массива задайте свойство DataSource элемента управления DataGrid массиву. Столбцы элемента управления DataGrid заполняются на основе свойств, для которых существуют методы доступа к свойствам в области.
dataGrid1.DataSource=arr;
Предоставление средств для просмотра массива
Вы можете использовать CurrencyManager для просмотра массива. Для этого свяжите CurrencyManager его с элементом BindingContext управления, в данном случае массив.
private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
Класс CurrencyManager имеет Position свойство, которое можно управлять итерацией элементов массива. Добавляя или вычитая из текущего DataGrid значенияPosition, можно просматривать строки элемента управления.
//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arr.Length - 1;
Пошаговый пример
В Visual C# .NET создайте проект приложения Windows. Форма1 создается по умолчанию.
Добавьте в проект класс.
Замените код в Class1.cs следующим кодом.
public class guitar { private string make; private string model; private short year; public guitar() { } public guitar(string Make, string Model, short Year) { make=Make; model=Model; year=Year; } public string Make { get { return make; } set { make = value; } } public string Model { get { return model; } set { model = value; } } public short Year { get { return year; } set { year = value; } } }Закройте окно кода Class1.cs и перейдите в конструктор форм.
Добавьте элемент управления DataGrid в Form1. Размер элемента управления DataGrid для размещения четырех столбцов и трех строк.
Добавьте четыре элемента управления Button в Form1 и упорядочение кнопок по горизонтали.
Измените свойство Text button1 на Next.
Измените свойство Text button2 на "Назад".
Измените свойство Text button3 на First.
Измените свойство Text button4 на Last.
Добавьте в класс
Form1приведенный далее код.private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;Перейдите в конструктор форм, щелкните правой кнопкой мыши форму и выберите пункт "Свойства".
Щелкните значок "События", а затем дважды щелкните событие загрузки, чтобы добавить
Form1_Loadсобытие в код.Добавьте следующий код в
Form1_Loadсобытие.arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971); currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr]; dataGrid1.DataSource=arr;Перейдите к просмотру конструктора форм.
Дважды нажмите кнопку " Далее", а затем добавьте следующий код в
button1_Clickсобытие.currencyManager.Position++;Дважды щелкните "Назад", а затем добавьте в событие следующий код
button2_Click.currencyManager.Position--;Дважды щелкните "Сначала", а затем добавьте следующий код в
button3_Clickсобытие.currencyManager.Position = 0;Дважды щелкните последний и добавьте в событие следующий код
button4_Click.currencyManager.Position = arr.Length - 1;Постройте и запустите проект.
Нажмите кнопки команды, чтобы переместиться между строками элемента управления DataGrid.
Примечание.
При необходимости можно изменить значения объектов.
Использование структуры вместо класса
Правила привязки структуры совпадают с правилами привязки объекта. Требуется свойство, являющееся методом доступа к членам. Структура, созданная для этой цели, напоминает класс.
Чтобы привязать к массиву структур, выполните следующие действия.
Изменение определения модуля класса Class1.cs в примере
public class guitarв следующем примере:
public struct guitarЗакомментируйте конструктор по умолчанию, как показано ниже.
//public guitar() //{ //}Создайте и запустите пример программы еще раз и убедитесь, что она работает с массивом структур.
Ссылки
Дополнительные сведения см . в разделе "Потребители данных в Windows Forms " в справке по Visual Studio .NET Online.