Skip to main content

How to Select Rows in DevExpress Data Grid for .NET MAUI

  • 3 minutes to read

A user can tap DataGridView rows to change the selection. Three selection modes are available: no selected rows, single row, and multiple rows. You can use the control’s API to track selection changes and to specify selected rows in code.

DevExpress Data Grid for .NET MAUI - Selection

To specify the selection behavior, set the SelectionMode property to one of the following values:

Single
A user can select a single row at a time.
Multiple
A user can select one or multiple rows.
None
A user cannot select rows.

Single Selection

To enable single row selection, set the SelectionMode property to Single.

DevExpress Data Grid for .NET MAUI - Single Selection

If a user selects (taps) a row, the SelectedItem property returns the data item that corresponds to the selected row. To select a row programmatically, bind SelectedItem to a property in the View Model. Assign the required data item to that View Model property.

To clear selection, set the SelectedItem property to null.

Use the SelectedRowHandle property to obtain the selected row handle.

The following example selects a single row:

<ContentPage.BindingContext>
    <local:EmployeeDataViewModel/>
</ContentPage.BindingContext>
<dx:DataGridView ...
                 SelectedItem="{Binding SelectedEmployee}">
      <!--...-->
</dx:DataGridView>
public class EmployeeDataViewModel : INotifyPropertyChanged
{
    Employee selectedEmployee;
    public Employee SelectedEmployee
    {
        get { return selectedEmployee; }
        set
        {
            selectedEmployee = value;
            OnPropertyChanged();
        }
    }
    public IList<Employee> Employees { get; }
    public EmployeeDataViewModel()
    {
        SelectedEmployee = Employees[4];
    }
    public event PropertyChangedEventHandler? PropertyChanged;
    protected void OnPropertyChanged([CallerMemberName] string name = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
    }
}

Multiple Selection

To enable multiple row selection, set the SelectionMode property to Multiple.

DevExpress Data Grid for .NET MAUI - Multiple Selection

If a user selects (taps) multiple rows, the SelectedItems property gets the collection of data items that correspond to selected rows. To select rows programmatically, bind SelectedItems to a property in the View Model. Assign required data items to the View Model’s property.

Users can tap selected rows to remove selection. To deselect all rows programmatically, set the SelectedItems property to null.

Use the GetSelectedRowHandles() method to obtain the collection of selected row handles.

The following example selects multiple rows in the data grid:

<ContentPage.BindingContext>
    <local:EmployeeDataViewModel/>
</ContentPage.BindingContext>
<dx:DataGridView ...
                 SelectedItems="{Binding SelectedEmployees}">
    <!--...-->
</dx:DataGridView>
public class EmployeeDataViewModel
{
    public IList<Employee> Employees { get; }
    public ObservableCollection<Employee> SelectedEmployees { get; }
    public EmployeeDataViewModel()
    {
        SelectedEmployees = new ObservableCollection<Employee>() { Employees[0], Employees[1] };
        SelectedEmployees.CollectionChanged += OnCollectionChanged;
    }

    private void OnCollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        // Occurs when a user selects an item in DataGridView
    }
}

Respond to Selection Changes

The SelectionChanged event occurs if a user selects (taps) a row or if you change the SelectedItem or SelectedItems property.