Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovládací prvek DataGrid umožňuje zobrazovat a upravovat data z mnoha různých zdrojů, například z databáze SQL, dotazu LINQ nebo jakéhokoli jiného zdroje dat s možností vazby. Pro více informací viz Přehled zdrojů svázání.
Vazba na data
Chcete-li vytvořit vazbu DataGrid na data, nastavte vlastnost ItemsSource na implementaci IEnumerable. Každý řádek v datové mřížce je svázán s objektem ve zdroji dat a každý sloupec v datové mřížce je svázán s vlastností datového objektu.
DataGrid Aby se uživatelské rozhraní automaticky aktualizovalo při přidání nebo odebrání položek ze zdrojových dat, musí být vázáno na kolekci, DataGrid která implementuje INotifyCollectionChanged rozhraní, například ObservableCollection<T>. Aby se změny vlastností automaticky odrážely, musí objekty ve zdrojové kolekci implementovat INotifyPropertyChanged rozhraní. Další informace najdete v tématu Přehled datových vazeb.
Sloupce můžou zobrazovat text, ovládací prvky, například ComboBoxnebo jakýkoli jiný obsah WPF, jako jsou obrázky, tlačítka nebo jakýkoli obsah obsažený v šabloně. K zobrazení dat definovaných v šabloně můžete použít DataGridTemplateColumn. Následující tabulka uvádí typy sloupců, které jsou ve výchozím nastavení k dispozici.
| Vygenerovaný typ sloupce | Datový typ |
|---|---|
| DataGridTextColumn | String |
| DataGridCheckBoxColumn | Boolean |
| DataGridComboBoxColumn | Enum |
| DataGridHyperlinkColumn | Uri |
Automatické generování sloupců
Ve výchozím nastavení ovládací DataGrid prvek generuje sloupce automaticky při nastavení ItemsSource vlastnosti. Typ vygenerovaného sloupce závisí na typu dat ve sloupci, jak je znázorněno v předchozí tabulce.
Když jsou sloupce automaticky generovány, můžete zpracovat událost AutoGeneratingColumn, abyste přizpůsobili nebo zrušili sloupce před jejich přidáním do DataGrid. Pokud do seznamu přidáte sloupce definované uživatelem i automaticky generované sloupce DataGrid, přidají se nejprve sloupce definované uživatelem. Pokud chcete změnit pořadí zobrazení sloupců, můžete nastavit DisplayIndex vlastnost pro jednotlivé sloupce.
Automatickému generování sloupců můžete zabránit nastavením vlastnosti AutoGenerateColumns na hodnotu false. To je užitečné, pokud chcete vytvořit a nakonfigurovat všechny sloupce explicitně.
Vlastní sloupce
DataGridTemplateColumn Tento typ použijte k definování vlastního sloupce, pokud předdefinované typy sloupců nevyhovují vašim potřebám. Typ DataGridTemplateColumn poskytuje CellTemplate a CellEditingTemplate vlastnosti, které umožňují určit šablony obsahu pro režimy zobrazení i úprav. Můžete například definovat vlastní sloupec pro kalendářní data. Mohlo by CellTemplate definovat TextBlock pro zobrazení data, zatímco CellEditingTemplate by mohlo definovat DatePicker ovládací prvek pro úpravu data.
Kolekci Columns můžete použít k programovému přidávání, vkládání, odebírání a změnám sloupců v ovládacím prvku za běhu. IsAutoGenerated Zkontrolujte vlastnost a určete, jestli je sloupec automaticky generován nebo definovaný uživatelem. Automaticky generované sloupce se při změnách ItemsSource přidají, odeberou nebo znovu vygenerují.
DataGrid lze přizpůsobit vzhled, například písmo buňky, barvu a velikost. DataGrid podporuje všechny funkce stylů a šablonování jiných ovládacích prvků WPF. DataGrid také obsahuje výchozí a přizpůsobitelné chování pro úpravy, řazení a ověřování.
Editace
Ve výchozím nastavení můžete upravovat položky přímo v souboru DataGrid. Aby bylo možné zaručit, že úpravy lze potvrdit a zrušit správně, musí objekty v DataGrid rozhraní implementovat IEditableObject . Případně můžete vlastnost nastavit IsReadOnly tak, aby true zakázala úpravy v objektu DataGrid.
Obsahuje DataGrid integrovanou podporu pro následující příkazy pro úpravy:
| Command | Výchozí klíč |
|---|---|
| BeginEditCommand | F2 |
| CancelEditCommand | ESC |
| CommitEditCommand | ZADEJTE |
| DeleteCommand | DELETE |
Aktuální buňku umístíte do režimu úprav tak, že na ni kliknete nebo stisknete klávesu F2. Úpravy na úrovni buňky se potvrdí, když přejdete na jinou buňku ve stejném řádku nebo stisknete enter, když je buňka v režimu úprav. Všechny úpravy v řádku se potvrdí, když přejdete na jiný řádek nebo stisknete enter, když je řádek v režimu úprav. Úpravy buňky zrušíte tak, že jednou stisknete klávesu ESC a zrušíte všechny úpravy v řádku tak, že dvakrát stisknete klávesu ESC. Další informace o programovém potvrzení a zrušení úprav naleznete v tématu metody BeginEdit, CommitEdit, a CancelEdit.
Nastavte vlastnosti CanUserAddRows a CanUserDeleteRows a určete, jestli uživatel může přidávat nebo odstraňovat řádky. Uživatel může odstranit vybrané řádky stisknutím klávesy DELETE. Pokud je vlastnost nastavena CanUserAddRows na true, přidá se nový řádek položky jako poslední řádek v objektu DataGrid. Výchozí hodnoty pro nové položky můžete nastavit zpracováním InitializingNewItem události.
Poznámka:
To, zda jsou akce úprav povoleny, je ovlivněno mnoha faktory, včetně stavu IsReadOnly a IsEnabled stavu DataGrid, a zda příslušná kolekce dat umožňuje akci.
Selection
Ve výchozím nastavení je vybrán celý řádek, když uživatel klikne na buňku v buňce DataGrida uživatel může vybrat více řádků. Vlastnost SelectionUnit můžete nastavit tak, aby určila, jestli uživatel může vybrat buňky, celé řádky, nebo obojí. SelectionMode Nastavte vlastnost tak, aby určila, zda lze vybrat více řádků nebo buněk, nebo pouze jeden řádek nebo buňky.
Můžete získat informace o buňkách vybraných z SelectedCells vlastnosti. Můžete získat informace o buňkách, pro které se změnil výběr při události SelectedCellsChangedEventArgsSelectedCellsChanged. Voláním metod SelectAllCells nebo UnselectAllCells můžete programově vybrat nebo zrušit výběr všech buněk. Další informace naleznete v tématu Výchozí chování klávesnice a myši v ovládacím prvku DataGrid.
Seskupování, řazení a filtrování
Ve výchozím nastavení můžete položky v DataGrid seřadit kliknutím na záhlaví sloupce. Řazení můžete přizpůsobit zpracováním Sorting události. Chcete-li zrušit výchozí řazení, nastavte Handled vlastnost na true. Zdrojová data můžete také seřadit před zobrazením v souboru DataGrid.
Chcete-li seskupit, seřadit a filtrovat data v objektu DataGrid, vytvořte vazbu DataGrid na ICollectionView implementaci, která podporuje tyto operace. Pak provedete operace v zobrazení kolekce. Když jsou položky seskupené v sadě DataGrid, můžete definovat GroupStyle , který určuje vzhled každé skupiny. Použijete GroupStyle přidáním do kolekce GroupStyle objektu DataGrid. Pokud máte více úrovní seskupení, můžete pro každou úroveň skupiny použít různé styly. Styly se použijí v pořadí, ve kterém jsou definované. Další informace naleznete v tématu Postupy: Seskupení, řazení a filtrování dat v ovládacím prvku DataGrid.
Validation
Umožňuje DataGrid provádět ověřování na úrovni buňky i řádku. Při ověřování na úrovni buňky ověříte jednotlivé vlastnosti vázaného datového objektu, když uživatel aktualizuje hodnotu. Při ověřování na úrovni řádků provádíte kontrolu celých datových objektů, když uživatel potvrdí změny v řádku. Vlastní vizuální zpětnou vazbu pro chyby ověřování na úrovni řádků můžete poskytnout nastavením RowValidationErrorTemplate vlastnosti nebo můžete použít výchozí indikátor chyby. Chcete-li vytvořit vlastní ověřovací pravidlo, vytvořte třídu, která je odvozena z ValidationRule třídy a implementuje metodu Validate . Přidejte do RowValidationRules kolekce vlastní ověřovací pravidlo.
Běžné úkoly
Následující tabulka uvádí některé běžné úlohy pro DataGrid a jejich provedení. Zobrazením souvisejícího rozhraní API najdete další informace a vzorový kód.
| Scénář | Přístup |
|---|---|
| Střídavá barva pozadí | Nastavte vlastnost AlternationCount na hodnotu 2 nebo více a potom přiřaďte Brush vlastnostem RowBackground a AlternatingRowBackground. |
| Definujte chování výběru buněk a řádků | Nastavte vlastnosti SelectionMode a SelectionUnit. |
| Přizpůsobení vizuálního vzhledu záhlaví, buněk a řádků | Na vlastnosti Style, ColumnHeaderStyle, RowHeaderStylenebo CellStyle použijte nový RowStyle. |
| Nastavení možností velikosti | Nastavte vlastnosti Height, MaxHeight, MinHeight, Width, MaxWidthnebo MinWidth. Další informace naleznete v tématu Možnosti velikosti v ovládacím prvku DataGrid. |
| Přístup k vybraným položkám | Zkontrolujte vlastnost SelectedCells, abyste získali vybrané buňky, a vlastnost SelectedItems pro získání vybraných řádků. Další informace najdete v tématu SelectedCells. |
| Přizpůsobení interakcí koncových uživatelů | Nastavte vlastnosti CanUserAddRows, CanUserDeleteRows, CanUserReorderColumns, CanUserResizeColumns, CanUserResizeRowsa CanUserSortColumns. |
| Zrušení nebo změna automaticky generovaných sloupců | Zpracujte událost AutoGeneratingColumn. |
| Ukotvení sloupce | Nastavte vlastnost FrozenColumnCount na hodnotu 1 a přesuňte sloupec na pozici nejvíce vlevo nastavením vlastnosti DisplayIndex na hodnotu 0. |
| Použití dat XML jako zdroje dat | Vytvořte vazbu ItemsSource na DataGrid s dotazem XPath, který představuje kolekci položek. Vytvořte každý sloupec v DataGrid. Vytvořte vazbu každého sloupce nastavením XPath na vazbu na dotaz, který získá vlastnost ve zdroji položky. Pro příklad viz DataGridTextColumn. |
Související články
| Titulek | Popis |
|---|---|
| Elementy DataGrid | Popisuje typy prvků, které tvoří DataGrid, včetně DataGridCell, DataGridRowDataGridRowHeader, , DataGridColumnHeadera DataGridColumnHeadersPresenter. |
| Návod: Zobrazení dat z databáze SQL Serveru v ovládacím prvku DataGrid | Popisuje, jak nastavit nový projekt WPF, přidat Element Entity Framework, nastavit zdroj a zobrazit data v DataGrid. |
| Jak přidat podrobnosti řádku do ovládacího prvku DataGrid | Popisuje, jak vytvořit detaily řádku pro DataGrid. |
| Postupy: Implementace ověřování pomocí ovládacího prvku DataGrid | Popisuje, jak ověřit hodnoty v buňkách a řádcích DataGrid a zobrazit zpětnou vazbu k ověření. |
| výchozí chování klávesnice a myši v ovládacím prvku DataGrid | Popisuje způsob interakce s ovládacím prvku DataGrid pomocí klávesnice a myši. |
| Jak: Seskupit, třídit a filtrovat data v ovládacím prvku DataGrid | Popisuje, jak zobrazit data v DataGrid různými způsoby seskupením, řazením a filtrováním dat. |
| Možnosti velikosti v ovládacím prvku DataGrid | Popisuje, jak ovládat absolutní a automatické nastavení velikosti v DataGrid. |
Přizpůsobení DataGridu
Ovládací DataGrid prvek podporuje běžné možnosti formátování tabulky, jako jsou střídavá pozadí řádků a možnost zobrazit nebo skrýt záhlaví, mřížku a posuvníky. Kromě toho ovládací prvek poskytuje několik vlastností stylu a šablony, které můžete použít k úplné změně vzhledu ovládacího prvku a jeho řádků, sloupců, záhlaví a buněk.
Pokud chcete přizpůsobit DataGrid chování, můžete zpracovat události pro změnu výběru, úpravy buněk a přeuspořádání sloupců. Také DataGrid zpřístupňuje několik událostí pro recyklaci řádků, které můžete využít k přizpůsobení řádků.
Chcete-li použít stejné nastavení vlastnosti na více DataGrid ovládacích prvků, použijte tuto Style vlastnost. Výchozí nastavení ControlTemplate můžete upravit tak, aby ovládací prvek získal jedinečný vzhled. Další informace o vytvoření ControlTemplateovládacího prvku naleznete v tématu Vytvoření šablony ovládacího prvku.
Vlastnosti závislosti pro tento ovládací prvek mohou být nastaveny výchozím stylem ovládacího prvku. Pokud je vlastnost nastavena ve výchozím stylu, vlastnost se může změnit z výchozí hodnoty, když se ovládací prvek zobrazí v aplikaci. Výchozí styl určuje, který motiv plochy se používá při spuštění aplikace.
Poznámka:
Nastavení vlastnosti vizuálu má vliv pouze v případě, že tato vlastnost je přítomna ve výchozí šabloně ovládacího prvku a nastavena pomocí TemplateBinding.
Styly a šablony
Tato část popisuje styly a šablony DataGrid ovládacího prvku. Výchozí nastavení ControlTemplate můžete upravit tak, aby ovládací prvek získal jedinečný vzhled. Další informace naleznete v tématu Styling a Šablony a Vytvoření šablony pro ovládací prvek.
Vlastnost obsahu
Ovládací DataGrid prvek používá ItemsSource vlastnost k definování zdroje dat. Zdrojem dat může být libovolná svázatelná kolekce, například databáze, dotaz LINQ nebo jiný zdroj dat s možností vázání.
Součástky
Tento ovládací prvek nedefinuje žádné části šablony.
Vizuální stavy
Následující tabulka uvádí vizuální stavy DataGrid ovládacího prvku.
| Název VisualState | Název skupiny VisualStateGroup | Popis |
|---|---|---|
| Normální | CommonStates | Ovládací prvek je v normálním stavu. |
| Disabled | CommonStates | Ovládací prvek je zakázaný. |
| Valid | StavyOvěření | Ovládací prvek je platný a nemá žádné chyby ověření. |
| Neplatný fokus | StavyOvěření | Ovládací prvek má chybu validace a klávesnicový fokus. |
| NeplatnýBezZaostření | StavyOvěření | Ovládací prvek má chybu ověření, ale nemá zaměření klávesnice. |
Typy elementů DataGrid
Ovládací DataGrid prvek se skládá z několika typů prvků. Informace o těchto prvcích a jejich stylech a šablonách naleznete v kategorii DataGrid Elements.
Viz také
- Elementy DataGrid
- DataGrid
- DataGridCell
- DataGridRow
- Přehled zdrojů binding
- Ovládací prvky
- Přehled datových vazeb
- Přehled datového šablonování
- stylování a šablonování
- WPF model obsahu
.NET Desktop feedback