in Windows binding is the interface and data source data consistency, that is, the implementation of the user interface and add and remove changes and database additions and deletions to the same, said the data source index or data table, and the form can be a Windows Form or Web form, here, We study data binding on Windows Forms, generally in two types: simple binding and complex binding. Simple binding is the ability to bind a property of a control to a data element, such as the value of a column in a dataset table, which is a typical binding type for a control such as a TextBox or a label. Complex bindings are the ability to bind a control to multiple data elements, typically bound to multiple records in a database, such as DataGridView, which can be bound to a DataTable, displaying multiple records and values for multiple fields at once.
Focus:
? Mastering the use of DataGridView controls
? DataGridView Common Properties and methods
? Simple binding
? Using bound controls to read data from a data source
Preview Lessons:
? How to use DataGridView
? DataGridView Common Properties and methods
? Simple binding
5.1 DataGridView Controls
In the project development, how to display the data in the database to the interface? The DataGridView control in. NET gives us the ability to display tabular data, in addition to the ability to display data table data directly, the DataGridView control supports sorting, data binding, and the creation of its own cell types, custom control skins, and other advanced features.
The data in the DataGridView control is usually provided using bindings, such as if you can bind the DataGridView control to a data table in the dataset, then the DataGridView control will automatically display the data in that data table, as we do in this way. In addition, the binding function of the DataGridView control is very powerful, it can not only bind the data table, but also bind the dataset, Data View, collection, array, etc.
Properties and methods of 5.1.1 DataGridView
Important properties and events commonly used by DataGridView controls
Property |
Description |
Columns |
The collection of included columns |
DataSource |
Data sources for DataGridView |
ReadOnly |
Whether cells can be edited |
DataPropertyName |
The name of the bound data column |
HeaderText |
Column header text |
Visible |
Specifies whether the column is visible |
Frozen |
Specifies whether the column moves when horizontal scrolling datagridview |
ReadOnly |
Specifies whether the cell is read-only |
ColumnCount |
Number of columns displayed in DataGridView |
RowCount |
Number of rows displayed in DataGridView |
Rows |
Rows for all controls |
CurrentCell |
Current cell |
CurrentRow |
The row of the current cell |
Selectedrows |
User-selected row |
DataMember |
Data source bound dataset, here is the name of the data table |
DefaultCellStyle |
Default appearance style for cells |
Event |
Description |
CurrentCellChanged |
Occurs when a cell is clicked |
CellContentClick |
Occurs when a cell is clicked |
You can create a DataGrid control object by dragging a DataGridView control into the form design area from the data card in the Form Design Toolbox window. You can then set the control-related properties in the DataGridView Control Properties window, and in addition to the properties mentioned in the table above, we can see many other commonly used properties in the DataGridView control's Properties window, such as:
Dock properties: You can set how the control fills the parent container
L ReadOnly Property: Sets whether the control is editable, sets false, and the control is not editable
L Rowheadervisible Property: Whether column headings are displayed, column headings are displayed by default
L MultiSelect Property: Allows multiple rows to be selected
5.1.2 binding DataGridView to a DataSet
Bind the DataGridView property to a data source, and by setting its DataSource property, you can bind the DataGridView control directly to a data source, which can be an array, a collection, or a dataset. Binding a DataGridView control to a dataset through the DataSource property typically has three forms:
I. Directly bound data table
Datagridview1.datasource=ds. Tables[0];
Two. Data view of bound data table
Datagridview.datasource=ds. Tables[0]. DefaultView;
Three. Binding to datasets
Datagridview.datasource=ds;
Datagridview.datamember=ds. Tables[0]. TableName;
In the third way, we know that the DataGridView control can only display a single data table at a time, so once you bind a dataset, you must use the DataMember property to specify which table the DataGridView control displays in the dataset. Therefore, set the name of a data table in a dataset to the DataMember property.
5.1.3 Customizing DataGridView Controls
The DataGridView control allows edits by default, supports automatic sorting, supports selection mode, adjusts column spacing, and so on, where the user can click on the column header to sort, sort by the different types of columns, and if the column is a number, sort by size. If they are characters, they are sorted by character order. Users can set their own selection mode, such as single-selection, multi-line selections, so that the data in the list is easy to select. Users can also double-click on the column separator between headings so that the left column automatically expands or shrinks according to the contents of the cell.
Here is a diagram of the DataGridView control's composition (Figure 15.9), which we will discuss in detail about the DataGridView of cell values and the settings for the appearance of cells, rows, columns, and so on.
DataGridViewColumn
rowheaders |
columns |
 
  DataGridViewRow |
|
|
datagridviewcell |
|
|
|
|
|
The composition of the DataGridView control is similar to the composition of a table and is simply divided into rows and columns. DataGridView control Each row is a DataGridViewRow object, and each row is divided by columns into a number of cells, and each cell is a DataGridViewCell object. In addition to rows and columns, the DataGridView Control has column and row headings, there are no corresponding classes for column headings and row headings, but there are many properties in the DataGridView control that can set the appearance of these two components.
You can get the data for any cell in the DataGridView control as you would get the data table data, because the collection of rows in the DataGridView control is also rows. In each row of objects (the DataGridViewRow object), there is another cell property that can get a column of the row. You can use the following code to traverse all the data in the DataGridView control:
foreach (DataGridViewRow R in This.dataGridView.Rows)
{
Print each cell value
for (int i=0;i<r.cells.count;i++)
{
Console.WriteLine (R.cells[i]. Value);
}
}
To get the value of a row or column cell you have selected, you need to use the previously mentioned CurrentRow and CurrentCell two properties to return the selected row object and return the selected cell object, respectively. These two properties allow you to find the value of the cell you want. For example:
Privatevoid datagridview_currentcellchanged (Object Sender,eventargs e)
{
Gets the column label of the currently selected cell
intn=this.datagridview.currentcelladdress.x;
Gets the value of the cell whose current row is labeled N
Stringval=this.datagridview.currentrow.cells[n]. Value.tostring ();
Use CurrentCell directly to get the value of the selected cell
Stringval=this.datagridview.currentcell.value.tostring ();
}
The DataGridView control provides the Currentcelladdress property to get the list and row labels of the selected cell, and the following code modifies the value of the item in the corresponding table in the selected cell in the DataGridView:
Privatevoid Datagridview_cellcontentclick (Object Sender,datagridviewcelleventargs e)
{
Get a bound data table
datatabledt= (DataTable) This.dataGridView.DataSource;
int x=datagridview.currentcelladdress.x; Get row labels
int y=datagridview.currentcelladdress.y; Get column Labels
Displays the value of the current cell
MessageBox.Show (This.datagridview.rows[x]. Cells[y]. Value.tostring ());//
Modify the value of the item in the data table for this cell
Dt. rows[x][y]= "Modified value";
Update to Database
Adapter. Update (DT);
Dt. AcceptChanges ();
}
In addition to providing flexible data access and editing capabilities, DataGridView also provides a powerful appearance setting feature that sets the appearance of the DataGridView control in the form of the DataGridView control that is prompted. We can figure out a total of five ways to set the DataGridView's appearance, which are line appearance, column appearance, row header appearance, column header appearance, and total appearance. The following five aspects are discussed below:
N Total Appearance settings
BackgroundColor: Setting its background color
BorderStyle: Set Border Style
Cellborderstyle: Set its cell border style
DefaultCellStyle: Set cell specific styles (font color, font type, alignment, data format, etc.)
Gridcolor: Set Gridline color
N Column Header appearance
Columnheadersborderstyle: Set border style for column headings
Columnheadersdefaultcellstyle: Setting column heading styles
Columnheadersheight: Setting the height of column headings
Columnheadersvisible: Sets whether column headings are displayed
N Row Header appearance
Rowheadersborderstyle: Set the border style for row headings
Rowheadersdefaultcellstyle: Set default row Heading style
Rowheaderswidth: Set the width of row header columns
Rowheadersvisible: Sets whether row headers are displayed
N Rows appearance
Rowtemplate: Set a row template to achieve the purpose of setting the line appearance
Rowsdefaultcellstyle: Sets the font color, font type, how and data format of the line
N Column appearance
The DataGridView control's column appearance is set in its Columns property. Within the Columns property you can set the appearance of each column. Each column contains attributes such as width, ColumnType, DefaultCellStyle, and so on. The Width property of each column allows you to set the column width.
DefaultCellStyle: Sets the properties of the column cell (font color, font type, alignment, data format, and so on)
ColumnType: Sets the type of cell, including six types: Datagridviewbuttoncolumn, Datagridviewcheckboxcolumn, Datagridviewcomboboxcolumn, Datagridviewimagecolumn, Datagridviewtextboxcolumn, Datagridviewlinkcolumn
C # 28 Data binding