Datenanzeigemodi im DataGridView-Steuerelement in Windows Forms

Das DataGridView-Steuerelement kann Daten in drei verschiedenen Modi anzeigen: gebunden, ungebunden und virtuell. Wählen Sie den für Ihre Anforderungen am besten geeigneten Modus.

Ungebunden

Der ungebundene Modus eignet sich für die Anzeige relativ kleiner Datenmengen, die Sie programmgesteuert verwalten. Sie fügen das DataGridView-Steuerelement nicht wie im gebundenen Modus direkt an eine Datenquelle an. Stattdessen müssen Sie das Steuerelement selbst ausfüllen, in der Regel mithilfe der DataGridViewRowCollection.Add-Methode.

Der ungebundene Modus kann besonders nützlich für statische, schreibgeschützte Daten sein, oder wenn Sie Ihren eigenen Code bereitstellen möchten, der mit einem externen Datenspeicher interagiert. Wenn Sie jedoch möchten, dass Ihre Benutzer mit einer externen Datenquelle interagieren, nutzen Sie normalerweise den gebundenen Modus.

Ein Beispiel mit einem schreibgeschützten ungebundenen DataGridView finden Sie unter Vorgehensweise: Erstellen eines ungebundenen DataGridView-Steuerelements in Windows Forms.

Bound

Der gebundene Modus eignet sich für das Verwalten von Daten mithilfe der automatischen Interaktion mit dem Datenspeicher. Sie können das DataGridView-Steuerelement direkt an seine Datenquelle anfügen, indem Sie die DataSource-Eigenschaft festlegen. Wenn das Steuerelement datengebunden ist, werden Datenzeilen mithilfe von Push- und Pullvorgängen übertragen, die Sie nicht explizit verwalten müssen. Wenn die AutoGenerateColumns-Eigenschaft true ist, wird für jede Spalte in Ihrer Datenquelle eine entsprechende Spalte im Steuerelement erstellt. Wenn Sie lieber Ihre eigenen Spalten erstellen möchten, können Sie diese Eigenschaft auf false festlegen und die DataPropertyName-Eigenschaft verwenden, um jede Spalte beim Konfigurieren zu binden. Dies ist nützlich, wenn Sie einen anderen Spaltentyp als die standardmäßig generierten Typen verwenden möchten. Weitere Informationen finden Sie unter Spaltentypen im DataGridView-Steuerelement von Windows Forms.

Ein Beispiel mit einem gebundenen DataGridView-Steuerelement finden Sie unter Exemplarische Vorgehensweise: Validieren von Daten im DataGridView-Steuerelement in Windows Forms.

Sie können auch ungebundene Spalten einem DataGridView-Steuerelement im gebundenen Modus hinzufügen. Dies ist nützlich, wenn Sie eine Spalte mit Schaltflächen oder Links anzeigen möchten, mit denen Benutzer Aktionen auf bestimmte Zeilen anwenden können. Es ist auch nützlich, um Spalten mit Werten anzuzeigen, die anhand gebundener Spalten berechnet wurden. Sie können die Zellwerte berechneter Spalten in einem Handler für das CellFormatting-Ereignis auffüllen. Wenn Sie jedoch DataSet oder DataTable als Datenquelle verwenden, möchten Sie möglicherweise stattdessen mithilfe der DataColumn.Expression-Eigenschaft eine berechnete Spalte erstellen. In diesem Fall behandelt das DataGridView-Steuerelement eine berechnete Spalte genauso wie jede andere Spalte in der Datenquelle.

Sortieren nach ungebundenen Spalten wird im gebundenen Modus nicht unterstützt. Wenn Sie eine ungebundene Spalte im gebundenen Modus erstellen, die vom Benutzer bearbeitbare Werte enthält, müssen Sie den virtuellen Modus implementieren, um diese Werte beizubehalten, wenn das Steuerelement nach einer gebundenen Spalte sortiert wird.

Virtuell

Im virtuellen Modus können Sie Ihre eigenen Datenverwaltungsvorgänge implementieren. Dies ist notwendig, um die Werte ungebundener Spalten im gebundenen Modus beizubehalten, wenn das Steuerelement nach gebundenen Spalten sortiert ist. Der Hauptzweck des virtuellen Modus besteht jedoch darin, die Leistung bei der Interaktion mit großen Datenmengen zu optimieren.

Sie fügen das DataGridView-Steuerelement an einen von Ihnen verwalteten Cache an, und Ihr Code steuert, wann Datenzeilen per Push- oder Pullvorgang übertragen werden. Um den Speicherbedarf klein zu halten, sollte der Cache eine ähnliche Größe haben wie die Anzahl der aktuell angezeigten Zeilen. Wenn der Benutzer neue Zeilen in die Ansicht scrollt, fordert Ihr Code neue Daten aus dem Cache an und löscht optional alte Daten aus dem Arbeitsspeicher.

Wenn Sie den virtuellen Modus implementieren, müssen Sie nachverfolgen, wann eine neue Zeile im Datenmodell benötigt wird und wann das Hinzufügen der neuen Zeile rückgängig gemacht werden soll. Die genaue Implementierung dieser Funktionalität hängt von der Implementierung des Datenmodells und dessen Transaktionssemantik ab, z. B. davon, ob sich der Commitbereich auf Zellen- oder Zeilenebene befindet.

Weitere Informationen zum virtuellen Modus finden Sie unter Virtueller Modus im DataGridView-Steuerelement in Windows Forms. Ein Beispiel für die Verwendung von Ereignissen im virtuellen Modus finden Sie unter Exemplarische Vorgehensweise: Implementieren des virtuellen Modus im DataGridView-Steuerelement in Windows Forms.

Weitere Informationen