Datenanzeigemodi im DataGridView-Steuerelement in Windows FormsData Display Modes in the Windows Forms DataGridView Control

Die DataGridView Steuerelement kann Daten in drei verschiedenen Modi anzeigen: gebunden, aufgehoben und virtuell.The DataGridView control can display data in three distinct modes: bound, unbound, and virtual. Wählen Sie den am besten geeigneten Modus, die je nach Ihren Anforderungen.Choose the most suitable mode based on your requirements.

UngebundeneUnbound

Ungebundene Modus eignet sich für die Anzeige von relativ kleine Datenmengen, die Sie programmgesteuert zu verwalten.Unbound mode is suitable for displaying relatively small amounts of data that you manage programmatically. Sie fügen nicht an die DataGridView Steuerelement direkt an eine Datenquelle wie gebunden-Modus.You do not attach the DataGridView control directly to a data source as in bound mode. Sie müssen füllen Sie stattdessen das Steuerelement selbst in der Regel mithilfe der DataGridViewRowCollection.Add Methode.Instead, you must populate the control yourself, typically by using the DataGridViewRowCollection.Add method.

Nicht gebundene Modus möglich besonders nützlich für statische, schreibgeschützte Daten, oder wenn Sie Ihren eigenen Code, mit der interagiert mit einem externen Datenspeicher bereitstellen möchten.Unbound mode can be particularly useful for static, read-only data, or when you want to provide your own code that interacts with an external data store. Wenn Sie Ihre Benutzer für die Interaktion mit einer externen Datenquelle möchten, jedoch verwenden in der Regel gebunden-Modus Sie.When you want your users to interact with an external data source, however, you will typically use bound mode.

Ein Beispiel für eine schreibgeschützte ungebundene DataGridView, finden Sie unter Vorgehensweise: Erstellen eines ungebundenen Windows Forms-DataGridView-Steuerelements.For an example that uses a read-only unbound DataGridView, see How to: Create an Unbound Windows Forms DataGridView Control.

GebundenBound

Gebundene Modus eignet sich für die Verwaltung von Daten mithilfe der automatischen Interaktion mit dem Datenspeicher.Bound mode is suitable for managing data using automatic interaction with the data store. Sie anfügen können die DataGridView Steuerelement direkt in der Datenquelle durch Festlegen der DataSource Eigenschaft.You can attach the DataGridView control directly to its data source by setting the DataSource property. Wenn das Steuerelement datengebunden ist, werden Datenzeilen mithilfe von Push übertragen und abgerufen werden, ohne dass explizite Verwaltung Ihrerseits erforderlich.When the control is data bound, data rows are pushed and pulled without the need of explicit management on your part. Wenn die AutoGenerateColumns Eigenschaft true, jede Spalte in der Datenquelle führt dazu, dass eine entsprechende Spalte in das Steuerelement erstellt werden.When the AutoGenerateColumns property is true, each column in your data source will cause a corresponding column to be created in the control. Wenn Sie Ihre eigenen Spalten erstellen möchten, können Sie diese Eigenschaft festlegen, um false und verwenden Sie die DataPropertyName Eigenschaft, um jede Spalte zu binden, wenn Sie es konfigurieren.If you prefer to create your own columns, you can set this property to false and use the DataPropertyName property to bind each column when you configure it. Dies ist nützlich, wenn einen Spaltentyp, als die Typen zu verwenden, wird standardmäßig generiert werden, sollen.This is useful when you want to use a column type other than the types that are generated by default. Weitere Informationen finden Sie unter Spaltentypen im DataGridView-Steuerelement in Windows Forms.For more information, see Column Types in the Windows Forms DataGridView Control.

Ein Beispiel für eine Grenze DataGridView steuern, finden Sie unter Exemplarische Vorgehensweise: Überprüfen von Daten in der Windows Forms-DataGridView-Steuerelement.For an example that uses a bound DataGridView control, see Walkthrough: Validating Data in the Windows Forms DataGridView Control.

Sie können auch ungebundene Spalten zum Hinzufügen einer DataGridView Steuerelement im gebundenen Modus.You can also add unbound columns to a DataGridView control in bound mode. Dies ist nützlich, wenn Sie eine Spalte mit Schaltflächen oder Links, mit denen Benutzern das Ausführen von Aktionen für bestimmte Zeilen anzeigen möchten.This is useful when you want to display a column of buttons or links that enable users to perform actions on specific rows. Es ist auch nützlich, um Spalten mit gebundenen Spalten berechnete Werte angezeigt werden soll.It is also useful to display columns with values calculated from bound columns. Sie können die Zellenwerte für berechnete Spalten in einem Handler für Auffüllen der CellFormatting Ereignis.You can populate the cell values for calculated columns in a handler for the CellFormatting event. Bei Verwendung einer DataSet oder DataTable als Datenquelle, jedoch möglicherweise verwenden möchten die DataColumn.Expression Eigenschaft, um eine berechnete Spalte erstellen.If you are using a DataSet or DataTable as the data source, however, you might want to use the DataColumn.Expression property to create a calculated column instead. In diesem Fall die DataGridView Steuerelement behandelt die berechnete Spalte wie jede andere Spalte in der Datenquelle.In this case, the DataGridView control will treat calculated column just like any other column in the data source.

Sortieren nach ungebundenen Spalten im gebundenen Modus wird nicht unterstützt.Sorting by unbound columns in bound mode is not supported. Wenn Sie eine ungebundene Spalte im gebundenen Modus, die Benutzer bearbeitbare Werte enthält erstellen, müssen Sie implementieren virtuellen Modus befindet, um diese Werte zu erhalten, wenn das Steuerelement nach einer gebundenen Spalte sortiert wird.If you create an unbound column in bound mode that contains user-editable values, you must implement virtual mode to maintain these values when the control is sorted by a bound column.

VirtualVirtual

Mit dem virtuellen Modus können Sie eigene Datenverwaltungsvorgänge implementieren.With virtual mode, you can implement your own data management operations. Dies ist erforderlich, um die Werte von ungebundenen Spalten im gebundenen Modus verwalten, wenn das Steuerelement gebundenen Spalten sortiert werden.This is necessary to maintain the values of unbound columns in bound mode when the control is sorted by bound columns. Der Hauptverwendungszweck des virtuellen Modus befindet, ist jedoch zum Optimieren der Leistung bei der Interaktion mit großen Datenmengen.The primary use of virtual mode, however, is to optimize performance when interacting with large amounts of data.

Sie fügen die DataGridView Steuerelement auf einen Cache, die Sie verwalten und Ihre Steuerelemente mit Code, wenn Daten mithilfe von Push übertragen und abgerufen werden.You attach the DataGridView control to a cache that you manage, and your code controls when data rows are pushed and pulled. Um den Speicherbedarf gering zu halten, sollte der Cache ähnliche Größe auf die Anzahl der Zeilen angezeigt werden.To keep the memory footprint small, the cache should be similar in size to the number of rows currently displayed. Wenn der Benutzer neue Zeilen in der Ansicht einen Bildlauf durchführt, wird Ihr Code neue Daten aus dem Cache anfordert, und löscht optional alte Daten aus dem Arbeitsspeicher.When the user scrolls new rows into view, your code requests new data from the cache and optionally flushes old data from memory.

Wenn Sie virtuellen Modus implementieren, müssen Sie nachverfolgen, wenn eine neue Zeile in das Datenmodell und beim Zurücksetzen das Hinzufügen der neuen Zeile benötigt wird.When you are implementing virtual mode, you will need to track when a new row is needed in the data model and when to rollback the addition of the new row. Die genaue Implementierung dieser Funktionalität richtet sich nach der Implementierung des Datenmodells und der Transaktionssemantik des Datenmodells; Gibt an, ob ein Commit-Bereich auf die Zelle oder Zeile ist.The exact implementation of this functionality will depend on the implementation of the data model and the transaction semantics of the data model; whether commit scope is at the cell or row level.

Weitere Informationen zu virtuellen Modus befindet, finden Sie unter Virtueller Modus im DataGridView-Steuerelement von Windows Forms.For more information about virtual mode, see Virtual Mode in the Windows Forms DataGridView Control. Ein Beispiel, das zeigt, wie Sie die Ereignisse des virtuellen Modus verwenden, finden Sie unter Exemplarische Vorgehensweise: Implementieren des virtuellen Modus in der Windows Forms-DataGridView-Steuerelement.For an example that shows how to use virtual mode events, see Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

Siehe auchSee also