Skip to main content
A newer version of this page is available. .

DataControlBase.SelectionMode Property

Gets or sets whether multiple row/cell selection is enabled. This is a dependency property.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v19.1.Core.dll

Declaration

public MultiSelectMode SelectionMode { get; set; }

Property Value

Type Description
MultiSelectMode

A MultiSelectMode enumeration value that specifies the selection mode.

Available values:

Name Description
None

Multi-selection is disabled.

Row

Allows selection of multiple rows.

Cell

Allows selection of multiple cells.

MultipleRow

Allows toggling the selection of multiple rows.

Remarks

Multiple row/cell selection is not allowed if the DataViewBase.NavigationStyle property is set to GridViewNavigationStyle.None and/or the SelectionMode property is set to MultiSelectMode.None.

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

To enable touch-friendly multiple row selection, set the SelectionMode property to MultiSelectMode.MultipleRow.

To enable multiple cell selection (block selection), set the SelectionMode property to MultiSelectMode.Cell.

To enable single row selection, set the DataViewBase.NavigationStyle property to GridViewNavigationStyle.Row and/or the SelectionMode property to MultiSelectMode.None.

For the CardView, setting the SelectionMode property affects card selection (similar to row selection in the TableView).

To disable card selection, set the SelectionMode property to MultiSelectMode.None or MultiSelectMode.Cell.

Example: How to Select Rows that Contain the Specified Value

This example shows how to select rows whose UnitPrice column contains a value equal to or greater than 20. To select rows, click the Select button.

<Window x:Class="DXGrid_SelectRows.Window1" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" 
        Title="Window1" Height="293" Width="494">
    <StackPanel>
        <dxg:GridControl Name="grid" AutoGenerateColumns="AddNew" SelectionMode="Row" Height="220">
            <dxg:GridControl.View>
                <dxg:TableView Name="tableView" AutoWidth="True" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <Button Content="Select" Width="50" Height="30" Margin="5" 
                HorizontalAlignment="Left" Click="Button_Click" />
    </StackPanel>
</Window>

Example: How to Change the Appearance of Selected Cells

You should implement your own CellStyle. In this CellStyle, implement style triggers for the SelectionState property. Four values can be assigned to this property: None, Focused, Selected, FocusedAndSelected.

<Window x:Class="DXGrid_ChangeRowAppearance.Window1" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" 
        Title="Window1" Height="300" Width="505"
        xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys">
    <Window.Resources>
        <Style x:Key="SelectionStateCellStyle" TargetType="dxg:LightweightCellEditor" 
               BasedOn="{StaticResource ResourceKey={dxgt:GridRowThemeKey ResourceKey=LightweightCellStyle}}">
            <Style.Triggers>
                <Trigger Property="SelectionState" Value="Selected">
                    <Setter Property="Background" Value="Red"/>
                </Trigger>
                <Trigger Property="SelectionState" Value="Focused">
                    <Setter Property="Background" Value="Green"/>
                    <Setter Property="TextBlock.Foreground" Value="Pink"/>
                </Trigger>
                <Trigger Property="SelectionState" Value="FocusedAndSelected">
                    <Setter Property="Background" Value="Gray"/>
                    <Setter Property="TextBlock.Foreground" Value="Black"/>
                </Trigger>
            </Style.Triggers>
        </Style>
        <Style x:Key="FocusedRowStyle" TargetType="dxg:RowControl">
            <Style.Triggers>
                <Trigger Property="dxg:GridViewBase.IsFocusedRow" Value="True">
                    <Setter Property="Background" Value="Gray" />
                    <Setter Property="Foreground" Value="White" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <dxg:GridControl x:Name="grid" AutoGenerateColumns="AddNew" SelectionMode="Cell">
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" 
                               CellStyle="{StaticResource SelectionStateCellStyle}" 
                               ShowGroupPanel="False" AllowGrouping="False" 
                               UseLightweightTemplates="All">
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </Grid>
</Window>

The following code snippets (auto-collected from DevExpress Examples) contain references to the SelectionMode property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also