Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im virtuellen Modus können Sie die Interaktion zwischen dem DataGridView-Steuerelement und einem benutzerdefinierten Datencache verwalten. Um den virtuellen Modus zu implementieren, legen Sie die VirtualMode-Eigenschaft auf true fest, und behandeln Sie ein oder mehrere der in diesem Thema beschriebenen Ereignisse. In der Regel behandeln Sie mindestens das CellValueNeeded Ereignis, wodurch das Steuerelement Werte im Datencache nachschlagen kann.
Gebundener Modus und virtueller Modus
Der virtuelle Modus ist nur erforderlich, wenn Sie den gebundenen Modus ergänzen oder ersetzen müssen. Im gebundenen Modus legen Sie die DataSource-Eigenschaft fest, und das Steuerelement lädt automatisch die Daten aus der angegebenen Quelle und sendet Benutzeränderungen zurück an die Eigenschaft. Sie können steuern, welche der gebundenen Spalten angezeigt werden, und die Datenquelle selbst verarbeitet normalerweise Vorgänge wie das Sortieren.
Ergänzender Gebundener Modus
Sie können den gebundenen Modus ergänzen, indem Sie ungebundene Spalten zusammen mit den gebundenen Spalten anzeigen. Dies wird manchmal als "gemischter Modus" bezeichnet und eignet sich zum Anzeigen von Elementen wie berechneten Werten oder Ui-Steuerelementen.
Da sich ungebundene Spalten außerhalb der Datenquelle befinden, werden sie von den Sortiervorgängen der Datenquelle ignoriert. Wenn Sie daher die Sortierung im gemischten Modus aktivieren, müssen Sie die ungebundenen Daten in einem lokalen Cache verwalten und den virtuellen Modus implementieren, damit das DataGridView Steuerelement damit interagieren kann.
Weitere Informationen zum Verwenden des virtuellen Modus zum Verwalten der Werte in ungebundenen Spalten finden Sie in den Beispielen in den Themen zur DataGridViewCheckBoxColumn.ThreeState-Eigenschaft und System.Windows.Forms.DataGridViewComboBoxColumn-Klassenreferenzen.
Ersetzen des gebundenen Modus
Wenn der gebundene Modus Ihre Leistungsanforderungen nicht erfüllt, können Sie alle Daten in einem benutzerdefinierten Cache über Ereignishandler für den virtuellen Modus verwalten. Sie können z. B. den virtuellen Modus verwenden, um einen Just-in-Time-Datenlademechanismus zu implementieren, der nur so viele Daten aus einer vernetzten Datenbank abruft, wie für eine optimale Leistung erforderlich ist. Dieses Szenario ist besonders hilfreich beim Arbeiten mit großen Datenmengen über eine langsame Netzwerkverbindung oder mit Clientcomputern, die einen begrenzten Arbeitsspeicher oder Speicherplatz aufweisen.
Weitere Informationen zur Verwendung des virtuellen Modus in einem Just-in-Time-Szenario finden Sie unter Implementieren des virtuellen Modus mit Just-In-Time-Datenladevorgang im Windows Forms DataGridView-Steuerelement.
Virtual-Mode Ereignisse
Wenn Ihre Daten schreibgeschützt sind, ist das CellValueNeeded-Ereignis möglicherweise das einzige Ereignis, das Sie behandeln müssen. Mit zusätzlichen Ereignissen im virtuellen Modus können Sie bestimmte Funktionen wie Benutzerbearbeitungen, Zeilenzufügung und Löschung sowie Transaktionen auf Zeilenebene aktivieren.
Einige standardmäßige DataGridView Ereignisse (z. B. Ereignisse, die auftreten, wenn Benutzer Zeilen hinzufügen oder löschen oder wenn Zellwerte bearbeitet, analysiert, überprüft oder formatiert werden) sind ebenfalls im virtuellen Modus nützlich. Sie können auch Ereignisse behandeln, mit denen Sie Werte beibehalten können, die normalerweise nicht in einer gebundenen Datenquelle gespeichert sind, z. B. Zell-QuickInfo-Text, Zell- und Zeilenfehlertext, Zell- und Zeilenverknüpfungsmenüdaten und Zeilenhöhendaten.
Weitere Informationen zum Implementieren des virtuellen Modus zum Verwalten von Lese-/Schreibdaten mit einem Commitbereich auf Zeilenebene finden Sie unter Walkthrough: Implementieren des virtuellen Modus im Windows Forms DataGridView-Steuerelement.
Ein Beispiel, das den virtuellen Modus mit einem Commitbereich auf Zellebene implementiert, finden Sie im Thema zur Eigenschaftsreferenz VirtualMode.
Die folgenden Ereignisse treten nur auf, wenn die VirtualMode-Eigenschaft auf truefestgelegt ist.
| Ereignis | BESCHREIBUNG |
|---|---|
| CellValueNeeded | Wird vom Steuerelement verwendet, um einen Zellwert aus dem Datencache für die Anzeige abzurufen Dieses Ereignis tritt nur für Zellen in ungebundenen Spalten auf. |
| CellValuePushed | Wird vom Steuerelement verwendet, um Benutzereingaben für eine Zelle im Datencache zu übernehmen Dieses Ereignis tritt nur für Zellen in ungebundenen Spalten auf. Rufen Sie die UpdateCellValue-Methode auf, wenn Sie einen zwischengespeicherten Wert außerhalb eines CellValuePushed Ereignishandlers ändern, um sicherzustellen, dass der aktuelle Wert im Steuerelement angezeigt wird, und um alle derzeit wirksamen Modi für die automatische Größenanpassung anzuwenden. |
| NewRowNeeded | Wird vom Steuerelement verwendet, um die Notwendigkeit einer neuen Zeile im Datencache anzugeben |
| RowDirtyStateNeeded | Wird vom Steuerelement verwendet, um zu bestimmen, ob eine Zeile keine Änderungen enthält |
| CancelRowEdit | Wird vom Steuerelement verwendet, um anzugeben, dass eine Zeile auf die zwischengespeicherten Werte zurückgesetzt werden soll. |
Die folgenden Ereignisse sind im virtuellen Modus nützlich, können jedoch unabhängig von der VirtualMode-Eigenschaftseinstellung verwendet werden.
| Ereignisse | BESCHREIBUNG |
|---|---|
| UserDeletingRow UserDeletedRow RowsRemoved RowsAdded |
Wird vom Steuerelement verwendet, um anzugeben, wann Zeilen gelöscht oder hinzugefügt werden, sodass Sie den Datencache entsprechend aktualisieren können. |
| CellFormatting CellParsing CellValidating CellValidated RowValidating RowValidated |
Wird vom Steuerelement verwendet, um Zellwerte für die Anzeige zu formatieren und benutzereingaben zu analysieren und zu überprüfen. |
| CellToolTipTextNeeded | Wird vom Steuerelement zum Abrufen von QuickInfo-Text für Zellen verwendet, wenn die DataSource-Eigenschaft festgelegt oder die VirtualMode-Eigenschaft festgelegt ist true.Zellen-QuickInfos werden nur angezeigt, wenn der ShowCellToolTips Eigenschaftswert ist true. |
| CellErrorTextNeeded RowErrorTextNeeded |
Wird vom Steuerelement zum Abrufen von Zell- oder Zeilenfehlertext verwendet, wenn die DataSource-Eigenschaft festgelegt oder die VirtualMode-Eigenschaft true ist.Rufen Sie die UpdateCellErrorText-Methode oder die UpdateRowErrorText-Methode auf, wenn Sie den Zell- oder Zeilenfehlertext ändern, um sicherzustellen, dass der aktuelle Wert im Steuerelement angezeigt wird. Zellen- und Zeilenfehler-Glyphen werden angezeigt, wenn die ShowCellErrors- und ShowRowErrors-Eigenschaftenwerte true sind. |
| CellContextMenuStripNeeded RowContextMenuStripNeeded |
Wird vom Steuerelement verwendet, um eine Zelle oder Zeile ContextMenuStrip abzurufen, wenn die Steuerelementeigenschaft DataSource festgelegt oder die VirtualMode Eigenschaft festgelegt ist true. |
| RowHeightInfoNeeded RowHeightInfoPushed |
Wird vom Steuerelement zum Abrufen oder Speichern von Zeilenhöheninformationen im Datencache verwendet. Rufen Sie die UpdateRowHeightInfo-Methode auf, wenn Sie die Zwischenspeicherzeilenhöheninformationen außerhalb eines RowHeightInfoPushed-Ereignishandlers ändern, um sicherzustellen, dass der aktuelle Wert in der Anzeige des Steuerelements verwendet wird. |
Bewährte Methoden im virtuellen Modus
Wenn Sie den virtuellen Modus implementieren, um effizient mit großen Datenmengen zu arbeiten, sollten Sie auch sicherstellen, dass Sie effizient mit dem DataGridView Steuerelement selbst arbeiten. Weitere Informationen zur effizienten Verwendung von Zellformatvorlagen, automatischen Größenanpassungen, Auswahlen und Zeilenfreigaben finden Sie unter Bewährte Methoden zum Skalieren des Windows Forms DataGridView-Steuerelements.
Siehe auch
- DataGridView
- VirtualMode
- Leistungsoptimierung des DataGridView-Steuerelements in Windows Forms
- Best Practices für das Skalieren des DataGridView-Steuerelements in Windows Forms
- Exemplarische Vorgehensweise: Implementieren des virtuellen Modus im DataGridView-Steuerelement in Windows Forms
- Implementieren des virtuellen Modus mit Just-In-Time-Laden von Daten in das DataGridView-Steuerelement in Windows Forms
.NET Desktop feedback