Все про DataGridView

Завантажити підручникПопередня сторінкаНаступна сторінка

  • Назви колонок джерела з'являться у заголовках колонок.
  • Якщо користувач клацне по заголовку колонки, рядки будуть автоматично відсортовані.
  • Зайве говорити, що практично все з перерахованого вище може бути дозволено/заборонено/налаштовано.

    Прив'язка даних

    Як відомо, перш ніж почати посилено і красиво відображати дані, ці дані треба отримати. DataGridView підтримує три режими роботи з даними:

    1. Перший, основний – відображення даних із зовнішніх колекцій (наприклад, ListView, DataTable).
    2. Спеціальний режим відображеннявільних(unbound) даних, тобто дані зберігаються в самому control-е.
    3. Ще один особливий режим роботи - віртуальний (Virtual mode). У ньому control посилає подію, при надходженні якої прикладний код повертає деякі дані. Так як дані при цьому не зобов'язані десь зберігатися, віртуальний режим може оперувати мільйонами рядків без проблем з продуктивністю або нестачею пам'яті.

    80% часу control буде працювати в основному режимі, так як у більшості випадків дані надходитимуть з СУБД, при цьому копіюючись у проміжні колекції, наприклад, DataTable.

    Прив'язувати елементи користувальницького інтерфейсу можна не тільки до таблично представлених даних. Практично будь-яка структура даних може бути їх джерела – звичайні об'єкти, масиви, колекції тощо. Хоча питання прив'язки даних у світі WinForms (Windows Forms Data Binding) абсолютно виходить за рамки даної статті через його масштабність, не згадати ключові моменти цієї технології було ббезперечним недоглядом. Стисло досліджуємо питання – як рекомендується прив'язувати DataGridView до даних, і чим Framework 2.0 може нас порадувати порівняно з версіями 1.x.

    У Framework 2.0 процедура прив'язування даних спростилася. Щоб продемонструвати це, розберемо, як здійснювалася прив'язка даних у Framework 1.x (див рис. 2).

    datagridview
    Малюнок 2.

    А що ж сьогодні? Сьогодні у нас новий герой – BindingSource (див. рисунок 3).

    даних
    Малюнок 3.