ColumnView.SelectedRowsCount Property

Gets the number of selected rows (cards).

Namespace: DevExpress.XtraGrid.Views.Base

Assembly: DevExpress.XtraGrid.v20.1.dll

Declaration

[Browsable(false)]
public virtual int SelectedRowsCount { get; }
<Browsable(False)>
Public Overridable ReadOnly Property SelectedRowsCount As Integer

Property Value

Type Description
Int32

An integer value indicating the number of selected rows (cards).

Remarks

If a single row (card) is selected, the SelectedRowsCount property returns 1 and the selected row (card) matches the focused row (card). Thus, you can access the selected row's handle using the ColumnView.FocusedRowHandle property. If the selected row is invalid, this method returns 0. Use the GridView.IsValidRowHandle method to identify whether the row is valid.

If several rows (cards) are selected, use the ColumnView.GetSelectedRows method to obtain the handles of the selected rows (cards).

Note that multiple row selection is allowed only when the ColumnViewOptionsSelection.MultiSelect property is set to true.

NOTE

Detail pattern Views do not contain data and they are never displayed within XtraGrid. So, the SelectedRowsCount member must not be invoked for these Views. The SelectedRowsCount member can only be used with real Views that are displayed within the Grid Control. The real Views with which an end-user interacts at runtime can be accessed using the following methods.

Examples

This example demonstrates how to obtain selected rows, and then change values of their "Discounted" column cells.

If Grid data is sorted or filtered, changes made to one Grid row can make other rows change their order and, as a result, their row handles. For that reason you cannot access selected rows by their handles and process these rows right away. Instead, pass row handles retrieved by ColumnView.GetSelectedRows method to the ColumnView.GetDataRow method. This allows you to access underlying data source objects (in this example, DataRows), save them to an array, and safely change their values afterwards.

Each row modification forces the Grid View to update itself. Enclose your code with the BaseView.BeginUpdate and BaseView.EndUpdate method calls to avoid excessive updates. Refer to the Batch Modifications Overview document for details.

ArrayList rows = new ArrayList();

// Add the selected rows to the list.
Int32[] selectedRowHandles = gridView1.GetSelectedRows();
for (int i = 0; i < selectedRowHandles.Length; i++) {
    int selectedRowHandle = selectedRowHandles[i];
    if (selectedRowHandle >= 0)
        rows.Add(gridView1.GetDataRow(selectedRowHandle));
}
try {
    gridView1.BeginUpdate();
    for (int i = 0; i < rows.Count; i++) {
        DataRow row = rows[i] as DataRow;
        // Change the field value.
        row["Discontinued"] = true;
    }
}
finally {
    gridView1.EndUpdate();
}
See Also