Virtuální režim v ovládacím prvku Windows Forms DataGridView
Pomocí virtuálního režimu můžete spravovat interakci mezi ovládacím DataGridView prvku a vlastní mezipamětí dat. Chcete-li implementovat virtuální režim, nastavte VirtualMode vlastnost na true
a zpracovat jednu nebo více událostí popsaných v tomto tématu. Obvykle budete zpracovávat aspoň CellValueNeeded
událost, která umožňuje ovládacímu prvku vyhledat hodnoty v mezipaměti dat.
Vázaný režim a virtuální režim
Virtuální režim je nutný pouze v případě, že potřebujete doplnit nebo nahradit vázaný režim. V vázaném DataSource režimu nastavíte vlastnost a ovládací prvek automaticky načte data ze zadaného zdroje a odešle změny uživatele zpět do něj. Můžete určit, které vázané sloupce se zobrazí, a samotný zdroj dat obvykle zpracovává operace, jako je řazení.
Doplňkový vázaný režim
Režim vazby můžete doplnit zobrazením nevázaných sloupců spolu s vázanými sloupci. Někdy se tomu říká "smíšený režim" a je užitečný pro zobrazení věcí, jako jsou počítané hodnoty nebo ovládací prvky uživatelského rozhraní .
Vzhledem k tomu, že nevázané sloupce jsou mimo zdroj dat, jsou ignorovány operacemi řazení zdroje dat. Proto když povolíte řazení ve smíšeném režimu, musíte spravovat nevázaná data v místní mezipaměti a implementovat virtuální režim, aby ovládací DataGridView prvek s ním mohl pracovat.
Další informace o použití virtuálního režimu k udržování hodnot v nevázaných sloupcích najdete v příkladech v DataGridViewCheckBoxColumn.ThreeState referenčních tématech vlastností a System.Windows.Forms.DataGridViewComboBoxColumn tříd.
Nahrazení vázaného režimu
Pokud režim vazby nesplňuje vaše požadavky na výkon, můžete spravovat všechna data ve vlastní mezipaměti prostřednictvím obslužných rutin událostí virtuálního režimu. Virtuální režim můžete například použít k implementaci mechanismu načítání dat za běhu, který načítá pouze tolik dat ze sítě, kolik je nezbytné pro optimální výkon. Tento scénář je užitečný zejména při práci s velkými objemy dat přes pomalé síťové připojení nebo s klientskými počítači, které mají omezenou velikost paměti RAM nebo úložného prostoru.
Další informace o použití virtuálního režimu ve scénáři za běhu naleznete v tématu Implementace virtuálního režimu s načítáním dat za běhu v ovládacím prvku model Windows Forms DataGridView.
Události virtuálního režimu
Pokud jsou vaše data určená jen pro čtení, může to být jediná událost, CellValueNeeded
kterou budete muset zpracovat. Další události virtuálního režimu umožňují povolit konkrétní funkce, jako jsou úpravy uživatelů, přidávání řádků a odstraňování a transakce na úrovni řádků.
Některé standardní DataGridView události (například události, ke kterým dochází, když uživatelé přidávají nebo odstraňují řádky nebo když jsou hodnoty buněk upravovány, analyzovány, ověřeny nebo formátovány) jsou užitečné i ve virtuálním režimu. Můžete také zpracovat události, které umožňují udržovat hodnoty, které nejsou obvykle uloženy ve vázaném zdroji dat, jako je text popisu buňky, text chyby buňky a řádku, data místní nabídky buňky a řádku a data výšky řádku.
Další informace o implementaci virtuálního režimu pro správu dat pro čtení a zápis s oborem potvrzení na úrovni řádků najdete v tématu Návod: Implementace virtuálního režimu v ovládacím prvku model Windows Forms DataGridView.
Příklad, který implementuje virtuální režim s oborem potvrzení na úrovni buňky, naleznete v tématu s referenčními informacemi o VirtualMode vlastnosti.
K následujícím událostem dochází pouze v případě, VirtualMode že je vlastnost nastavena na true
hodnotu .
Událost | Popis |
---|---|
CellValueNeeded | Ovládací prvek slouží k načtení hodnoty buňky z mezipaměti dat pro zobrazení. K této události dochází pouze u buněk v nevázaných sloupcích. |
CellValuePushed | Ovládací prvek slouží k potvrzení vstupu uživatele pro buňku do mezipaměti dat. K této události dochází pouze u buněk v nevázaných sloupcích. UpdateCellValue Volání metody při změně hodnoty uložené v mezipaměti mimo obslužnou rutinu CellValuePushed události, aby se zajistilo, že aktuální hodnota je zobrazena v ovládacím prvku a použít všechny režimy automatické velikosti aktuálně platné. |
NewRowNeeded | Tento ovládací prvek slouží k označení potřeby nového řádku v mezipaměti dat. |
RowDirtyStateNeeded | Ovládací prvek slouží k určení, jestli má řádek nějaké nepotvrzené změny. |
CancelRowEdit | Tento ovládací prvek slouží k označení, že se řádek má vrátit k hodnotám uloženým v mezipaměti. |
Následující události jsou užitečné ve virtuálním režimu, ale lze je použít bez VirtualMode ohledu na nastavení vlastnosti.
Události | Popis |
---|---|
UserDeletingRow UserDeletedRow RowsRemoved RowsAdded |
Ovládací prvek slouží k označení, kdy jsou řádky odstraněny nebo přidány, což vám umožní odpovídajícím způsobem aktualizovat mezipaměť dat. |
CellFormatting CellParsing CellValidating CellValidated RowValidating RowValidated |
Tento ovládací prvek slouží k formátování hodnot buněk pro zobrazení a k analýze a ověření uživatelského vstupu. |
CellToolTipTextNeeded | Tento ovládací prvek slouží k načtení textu popisu buňky, pokud DataSource je vlastnost nastavena VirtualMode nebo je true vlastnost .Nástroj buňky Tipy se zobrazí pouze v případech, kdy ShowCellToolTips je true hodnota vlastnosti . |
CellErrorTextNeeded RowErrorTextNeeded |
Tento ovládací prvek používá k načtení chybového textu buňky nebo řádku, pokud DataSource je vlastnost nastavena VirtualMode nebo je true vlastnost .UpdateCellErrorText Volání metody nebo UpdateRowErrorText metody při změně textu chyby buňky nebo řádku, aby se zajistilo, že aktuální hodnota je zobrazena v ovládacím prvku. Glyfy buněk a řádků se zobrazí, když ShowCellErrorsShowRowErrors jsou true hodnoty vlastností . |
CellContextMenuStripNeeded RowContextMenuStripNeeded |
Používá ovládací prvek k načtení buňky nebo řádku ContextMenuStrip , pokud je vlastnost ovládacího prvku DataSource nastavena VirtualMode nebo je true vlastnost . |
RowHeightInfoNeeded RowHeightInfoPushed |
Používá se ovládacím prvku k načtení nebo uložení informací o výšce řádku v mezipaměti dat. Volejte metodu UpdateRowHeightInfo při změně informací o výšce řádku v mezipaměti mimo obslužnou rutinu RowHeightInfoPushed události, aby se zajistilo, že se aktuální hodnota použije v zobrazení ovládacího prvku. |
Osvědčené postupy ve virtuálním režimu
Pokud implementujete virtuální režim, abyste mohli efektivně pracovat s velkými objemy dat, budete také chtít zajistit efektivní práci se samotným ovládacím DataGridView prvku. Další informace o efektivním používání stylů buněk, automatické velikosti, výběru a sdílení řádků najdete v tématu Osvědčené postupy pro škálování ovládacího prvku model Windows Forms DataGridView.
Viz také
- DataGridView
- VirtualMode
- Ladění výkonu v ovládacím prvku Windows Forms DataGridView
- Doporučené postupy pro změnu velikosti ovládacího prvku Windows Forms DataGridView
- Návod: Implementace virtuálního režimu v ovládacím prvku Windows Forms DataGridView
- Implementace virtuálního režimu s načítáním dat za běhu v ovládacím prvku Windows Forms DataGridView
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro