Sdílet prostřednictvím


DataGrid – přehled ovládacího prvku (Windows Forms)

Poznámka:

Ovládací DataGridView prvek nahradí ovládací prvek a přidá do ovládacího prvku funkce DataGrid . Pokud ale zvolíte, DataGrid zachová se ovládací prvek pro zpětnou kompatibilitu i budoucí použití. Další informace najdete v tématu Rozdíly mezi ovládacími prvky model Windows Forms DataGridView a DataGrid.

Ovládací prvek model Windows Forms DataGrid zobrazuje data v řadě řádků a sloupců. Nejjednodušším případem je, když je mřížka svázaná se zdrojem dat s jedinou tabulkou, která neobsahuje žádné relace. V takovém případě se data zobrazují v jednoduchých řádcích a sloupcích, jako v tabulce. Další informace o vazbě dat k jiným ovládacím prvkům najdete v tématu Datové vazby a model Windows Forms.

Pokud je svázaný DataGrid s daty s více souvisejícími tabulkami a pokud je v mřížce povolená navigace, mřížka zobrazí v každém řádku rozbalovací prvky. Při rozbalení může uživatel přejít z nadřazené tabulky na podřízenou tabulku. Kliknutím na uzel se zobrazí podřízená tabulka a kliknutím na tlačítko Zpět se zobrazí původní nadřazená tabulka. Tímto způsobem mřížka zobrazuje hierarchické relace mezi tabulkami.

Následující snímek obrazovky ukazuje DataGrid svázaný s daty s více tabulkami:

A WinForms app showing a DataGrid bound to data with multiple tables.

Může DataGrid poskytovat uživatelské rozhraní pro datovou sadu, navigaci mezi souvisejícími tabulkami a bohaté možnosti formátování a úprav.

Zobrazení a manipulace s daty jsou samostatné funkce: Ovládací prvek zpracovává uživatelské rozhraní, zatímco aktualizace dat jsou zpracovávány architekturou datových vazeb model Windows Forms a poskytovateli dat rozhraní .NET Framework. Proto bude synchronizovat více ovládacích prvků vázaných na stejný zdroj dat.

Poznámka:

Pokud znáte ovládací prvek DataGrid v jazyce Visual Basic 6.0, najdete některé významné rozdíly v ovládacím prvku model Windows FormsDataGrid.

Když je mřížka svázaná s objektem DataSet, sloupce a řádky se automaticky vytvoří, naformátují a vyplní. Další informace najdete v tématu Datové vazby a model Windows Forms. Po generování DataGrid ovládacího prvku můžete v závislosti na vašich potřebách přidávat, odstraňovat, měnit uspořádání a formátovat sloupce a řádky.

Vytvoření vazby dat k ovládacímu prvku

DataGrid Aby ovládací prvek fungoval, měl by být svázán se zdrojem dat pomocí DataSourceDataMember vlastností v době návrhu SetDataBinding nebo metody za běhu. Tato vazba odkazuje DataGrid na objekt instance zdroje dat, jako je například nebo DataSetDataTable). Ovládací DataGrid prvek zobrazuje výsledky akcí prováděných s daty. Většina akcí specifických pro data se neprovádí prostřednictvím DataGrid zdroje dat, ale místo toho prostřednictvím zdroje dat.

Pokud se data v vázané datové sadě aktualizují jakýmkoli mechanismem, DataGrid ovládací prvek odráží změny. Pokud má datová mřížka a její styly tabulek a styly sloupců nastavenou ReadOnlyfalsevlastnost , data v datové sadě je možné aktualizovat prostřednictvím DataGrid ovládacího prvku.

Najednou se dá zobrazit DataGrid jenom jedna tabulka. Pokud je mezi tabulkami definována relace nadřazený-podřízený, uživatel se může pohybovat mezi souvisejícími tabulkami a vybrat tabulku, která se má zobrazit v ovládacím DataGrid prvku. Informace o vazbě DataGrid ovládacího prvku k ADO.NET zdroji dat v době návrhu nebo spuštění naleznete v tématu Postupy: Vytvoření vazby ovládacího prvku model Windows Forms DataGrid ke zdroji dat.

Mezi platné zdroje dat patří DataGrid :

Pokud je zdrojem datová sada, může být datová sada objektem ve formuláři nebo objektem předaným do formuláře webovou službou XML. Můžete vytvořit vazbu na typy nebo netypové datové sady.

Ovládací prvek můžete také svázat DataGrid s dalšími strukturami, pokud objekty ve struktuře, například prvky v poli, zveřejňují veřejné vlastnosti. Mřížka zobrazí všechny veřejné vlastnosti prvků ve struktuře. Pokud například svážete DataGrid ovládací prvek s polem objektů zákazníka, zobrazí se v mřížce všechny veřejné vlastnosti těchto objektů zákazníka. V některých případech to znamená, že i když můžete vytvořit vazbu se strukturou, výsledná vázaných struktur nemusí mít praktickou aplikaci. Můžete například vytvořit vazbu na pole celých čísel, ale protože Integer datový typ nepodporuje veřejnou vlastnost, mřížka nemůže zobrazit žádná data.

Pokud jejich prvky zpřístupňují veřejné vlastnosti, můžete svázat s následujícími strukturami:

  • Jakákoli komponenta, která implementuje IList rozhraní. To zahrnuje pole s jednou dimenzí.

  • Jakákoli komponenta, která implementuje IListSource rozhraní.

  • Jakákoli komponenta, která implementuje IBindingList rozhraní.

Další informace o možných zdrojích dat najdete v tématu Zdroje dat podporované model Windows Forms.

Zobrazení mřížky

Běžným použitím DataGrid ovládacího prvku je zobrazení jedné tabulky dat z datové sady. Ovládací prvek se ale dá použít také k zobrazení více tabulek, včetně souvisejících tabulek. Zobrazení mřížky se automaticky upraví podle zdroje dat. Následující tabulka ukazuje, co se zobrazuje pro různé konfigurace.

Obsah datové sady Co se zobrazí
Jedna tabulka. Tabulka se zobrazí v mřížce.
Více tabulek. Mřížka může zobrazit stromové zobrazení, ve kterém můžou uživatelé přejít a vyhledat tabulku, kterou chtějí zobrazit.
Více souvisejících tabulek. Mřížka může zobrazit stromové zobrazení pro výběr tabulek nebo můžete určit, že mřížka zobrazuje nadřazenou tabulku. Záznamy v nadřazené tabulce umožňují uživatelům přejít na související podřízené řádky.

Poznámka:

Tabulky v datové sadě souvisejí pomocí DataRelation. Viz také Vytvoření relací mezi datovými sadami.

DataGrid Když ovládací prvek zobrazuje tabulku a AllowSorting vlastnost je nastavena na true, lze data použít kliknutím na záhlaví sloupců. Uživatel může také přidávat řádky a upravovat buňky.

Relace mezi sadou tabulek se uživatelům zobrazí pomocí struktury navigace nadřazené/podřízené. Nadřazené tabulky jsou nejvyšší úrovní dat a podřízené tabulky jsou datové tabulky odvozené od jednotlivých výpisů v nadřazených tabulkách. Rozbalovací objekty se zobrazují v každém nadřazeném řádku, který obsahuje podřízenou tabulku. Kliknutím na rozbalovač vygenerujete seznam odkazů podobných webu na podřízené tabulky. Když uživatel vybere odkaz, zobrazí se podřízená tabulka. Kliknutím na ikonu zobrazit nebo skrýt nadřazené řádky (Show/hide parent rows icon) skryjete informace o nadřazené tabulce nebo ji znovu zobrazíte, pokud ji uživatel dříve skryl. Uživatel může kliknout na tlačítko Zpět a přejít zpět na dříve zobrazenou tabulku.

Sloupce a řádky

Skládá DataGrid se z kolekce DataGridTableStyle objektů, které jsou obsaženy ve DataGrid vlastnosti ovládacího prvku TableStyles . Styl tabulky může obsahovat kolekci DataGridColumnStyle objektů, které jsou obsaženy ve GridColumnStyles vlastnosti DataGridTableStyle.. Vlastnosti a GridColumnStyles vlastnosti můžete upravit TableStyles pomocí editorů kolekcí, ke které se přistupuje prostřednictvím okna Vlastnosti.

Ke všem DataGridTableStyle přidruženým ovládacím DataGrid prvkům lze přistupovat prostřednictvím GridTableStylesCollectionovládacího prvku . V GridTableStylesCollection návrháři se dá upravit pomocí editoru DataGridTableStyle kolekcí nebo programově prostřednictvím DataGrid vlastnosti ovládacího prvku TableStyles .

Následující obrázek znázorňuje objekty zahrnuté v ovládacím prvku DataGrid:

Diagram that shows objects included in the DataGrid control.

Styly tabulek a styly sloupců se synchronizují s DataTable objekty a DataColumn objekty nastavením jejich MappingName vlastností na odpovídající TableName a ColumnName vlastnosti. DataGridTableStyle Pokud ovládací prvek, který nemá žádné styly sloupců, je přidán do DataGrid ovládacího prvku vázaného na platný zdroj dat a MappingName vlastnost tohoto stylu tabulky je nastavena na platnou TableName vlastnost, vytvoří se kolekce DataGridColumnStyle objektů pro tento styl tabulky. Pro každý DataColumn nalezený v kolekci ColumnsDataTable, odpovídající DataGridColumnStyle je přidán do GridColumnStylesCollection. GridColumnStylesCollection je přístupný prostřednictvím GridColumnStyles vlastnosti DataGridTableStyle. Sloupce lze přidat nebo odstranit z mřížky pomocí Add metody v Remove objektu GridColumnStylesCollection. Další informace naleznete v tématu Postupy: Přidání tabulek a sloupců do ovládacího prvku model Windows Forms DataGrid a postupy: Odstranění nebo skrytí sloupců v ovládacím prvku model Windows Forms DataGrid.

Kolekce typů sloupců rozšiřuje DataGridColumnStyle třídu o bohaté možnosti formátování a úprav. Všechny typy sloupců dědí ze DataGridColumnStyle základní třídy. Třída, která je vytvořena, závisí na DataType vlastnosti DataColumn , ze které DataGridColumn je založen. Například DataColumn vlastnost, která má DataType nastavenou Boolean vlastnost, bude přidružena k objektu DataGridBoolColumn. Následující tabulka popisuje každý z těchto typů sloupců.

Typ sloupce Popis
DataGridTextBoxColumn Přijímá a zobrazuje data jako formátované nebo neformátované řetězce. Možnosti úprav jsou stejné jako pro úpravy dat v jednoduchém TextBoxformátu . Dědí z DataGridColumnStyle.
DataGridBoolColumn Přijímá a zobrazuje truehodnoty , falsea null. Dědí z DataGridColumnStyle.

Poklikáním na pravý okraj sloupce změníte velikost sloupce tak, aby se zobrazila úplná popis a nejširší položka.

Styly tabulek a styly sloupců

Jakmile nastavíte výchozí formát DataGrid ovládacího prvku, můžete přizpůsobit barvy, které se použijí při zobrazení určitých tabulek v datové mřížce.

Toho dosáhnete vytvořením instancí DataGridTableStyle třídy. Styly tabulky určují formátování konkrétních tabulek, které se liší od výchozího formátování samotného DataGrid ovládacího prvku. Každá tabulka může mít vždy definovaný jenom jeden styl tabulky.

Někdy budete chtít mít konkrétní sloupec jiný než zbytek sloupců konkrétní tabulky dat. Pomocí vlastnosti můžete vytvořit přizpůsobenou sadu stylů GridColumnStyles sloupců.

Styly sloupců souvisejí se sloupci v datové sadě stejně jako styly tabulek souvisejících s tabulkami dat. Stejně jako každá tabulka může mít najednou definovaný jenom jeden styl tabulky, takže každý sloupec má definovaný jenom jeden styl sloupce, a to v konkrétním stylu tabulky. Tato relace je definována ve vlastnosti sloupce MappingName .

Pokud jste vytvořili styl tabulky bez přidání stylů sloupců, Visual Studio přidá výchozí styly sloupců při vytváření formuláře a mřížky za běhu. Pokud jste ale vytvořili styl tabulky a přidali do ní styly sloupců, Visual Studio nevytvoří žádné styly sloupců. Budete také muset definovat styly sloupců a přiřadit je s názvem mapování, aby se sloupce, které chcete zobrazit v mřížce.

Vzhledem k tomu, že určíte, které sloupce jsou součástí datové mřížky, přiřazením stylu sloupce a ke sloupcům není přiřazen žádný styl sloupce, můžete do datové sady zahrnout sloupce dat, které se nezobrazují v mřížce. Vzhledem k tomu, že datový sloupec je součástí datové sady, můžete data, která se nezobrazují, programově upravit.

Poznámka:

Obecně platí, že před přidáním stylů tabulky do kolekce stylů tabulky vytvořte styly sloupců a přidejte je do kolekce stylů sloupců. Když do kolekce přidáte prázdný styl tabulky, styly sloupců se automaticky vygenerují za vás. V důsledku toho se vyvolá výjimka, pokud se pokusíte přidat nové styly sloupců s duplicitními MappingName hodnotami do kolekce stylů sloupců.

Někdy budete chtít jen upravit jeden sloupec mezi mnoha sloupci; Například datová sada obsahuje 50 sloupců a vy jich chcete jenom 49. V tomto případě je jednodušší importovat všech 50 sloupců a programově odebrat jeden sloupec, nikoli programově přidávat každý z 49 jednotlivých sloupců, které chcete.

Formát

Formátování, které lze použít u DataGrid ovládacího prvku, zahrnuje styly ohraničení, styly mřížky, písma, popis vlastnosti, zarovnání dat a střídavou barvu pozadí mezi řádky. Další informace naleznete v tématu Postupy: Formátování ovládacího prvku model Windows Forms DataGrid.

Události

Kromě běžných řídicích událostí, jako MouseDownje , Entera Scroll, DataGrid ovládací prvek podporuje události spojené s úpravou a navigaci v mřížce. Vlastnost CurrentCell určuje, která buňka je vybrána. Událost CurrentCellChanged se vyvolá, když uživatel přejde na novou buňku. Když uživatel přejde do nové tabulky prostřednictvím relací nadřazenosti nebo podřízenosti, Navigate vyvolá se událost. Událost BackButtonClick se vyvolá, když uživatel klikne na tlačítko Zpět, když si uživatel prohlíží podřízenou tabulku, a ShowParentDetailsButtonClick událost se vyvolá při kliknutí na ikonu zobrazit nebo skrýt nadřazené řádky.

Viz také