# Selection | WPF Controls | DevExpress Documentation

End-users can select a single [accordion item](/WPF/118546/controls-and-libraries/navigation-controls/accordion-control/visual-elements/accordion-item) at a time by default:

![AccordionSelection](/WPF/images/accordionselection132149.png)

Use the [AccordionControl.SelectedItem](/WPF/DevExpress.Xpf.Accordion.AccordionControl.SelectedItem) property to get or set the selected accordion item.

## Restrict Item Selection

### Disable Item Selection

Set the [AccordionControl.SelectionMode](/WPF/DevExpress.Xpf.Accordion.AccordionControl.SelectionMode) property to [SelectionMode.None](/WPF/DevExpress.Xpf.Accordion.SelectionMode) to prohibit item selection.

### Restrict Selection For a Single Item

Set the accordion item’s [AccordionItem.CanSelect](/WPF/DevExpress.Xpf.Accordion.AccordionItem.CanSelect) property to `false` to prevent this item from being selected.

### Restrict Selection Dynamically

To dynamically prevent accordion items from being selected, handle the [AccordionControl.CanSelectItem](/WPF/DevExpress.Xpf.Accordion.AccordionControl.CanSelectItem) event.

In the event handler, use the [CanSelectItemEventArgs.Item](/WPF/DevExpress.Xpf.Accordion.CanSelectItemEventArgs.Item) property to get the processed item. To prevent this item from being selected, set the [CanSelectItemEventArgs.CanSelect](/WPF/DevExpress.Xpf.Accordion.CanSelectItemEventArgs.CanSelect) property to `false`.

#### In Bound Mode

In bound mode, the [CanSelectItemEventArgs.Item](/WPF/DevExpress.Xpf.Accordion.CanSelectItemEventArgs.Item) property returns a bound data object.

The code sample below demonstrates how to prevent an item with the *“Application Settings”* caption from being selected.

- Xaml

<section id="tabpanel_dcKi2zJZb6_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;Window ...
        xmlns:dx=&quot;http://schemas.devexpress.com/winfx/2008/xaml/core&quot;
        xmlns:dxa=&quot;http://schemas.devexpress.com/winfx/2008/xaml/accordion&quot;&gt;
    &lt;Grid&gt;
        &lt;dxa:AccordionControl
            ItemsSource=&quot;{Binding AppMenu.MenuItems}&quot;
            DisplayMemberPath=&quot;Caption&quot;
            ChildrenPath=&quot;SubItems&quot;
            CanSelectItem=&quot;AccordionControl_CanSelectItem&quot; /&gt;
    &lt;/Grid&gt;
&lt;/Window&gt;
</code></pre></section>

- C#
- VB.NET

<section id="tabpanel_dcKi2zJZb6-1_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code class="lang-csharp">private void AccordionControl_CanSelectItem(object sender, DevExpress.Xpf.Accordion.CanSelectItemEventArgs e) {
    MenuItem item = (MenuItem)e.Item;
    if (item.Caption == &quot;Application Settings&quot;) {
        e.CanSelect = false;
    }
}
</code></pre></section>
<section id="tabpanel_dcKi2zJZb6-1_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code class="lang-vb">Private Sub AccordionControl_CanSelectItem(ByVal sender As Object, ByVal e As DevExpress.Xpf.Accordion.CanSelectItemEventArgs)
    Dim item As MenuItem = CType(e.Item, MenuItem)
    If item.Caption = &quot;Application Settings&quot; Then
        e.CanSelect = False
    End If
End Sub
</code></pre></section>

#### In Unbound Mode

In unbound mode, the [CanSelectItemEventArgs.Item](/WPF/DevExpress.Xpf.Accordion.CanSelectItemEventArgs.Item) property returns an [AccordionItem](/WPF/DevExpress.Xpf.Accordion.AccordionItem).

The code sample below demonstrates how to prevent an item with the *“Application Settings”* header from being selected.

- Xaml

<section id="tabpanel_dcKi2zJZb6-2_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;Window ...
        xmlns:dx=&quot;http://schemas.devexpress.com/winfx/2008/xaml/core&quot;
        xmlns:dxa=&quot;http://schemas.devexpress.com/winfx/2008/xaml/accordion&quot;&gt;
    &lt;Grid&gt;
        &lt;dxa:AccordionControl
            CanSelectItem=&quot;AccordionControl_CanSelectItem&quot; &gt;
            &lt;dxa:AccordionItem Header=&quot;Start Page&quot;/&gt;
            &lt;dxa:AccordionItem Header=&quot;Preferences&quot;&gt;
                &lt;dxa:AccordionItem Header=&quot;Account Info&quot;/&gt;
                &lt;dxa:AccordionItem Header=&quot;Application Settings&quot;/&gt;
            &lt;/dxa:AccordionItem&gt;
            &lt;dxa:AccordionItem Header=&quot;About&quot;/&gt;
        &lt;/dxa:AccordionControl&gt;
    &lt;/Grid&gt;
&lt;/Window&gt;
</code></pre></section>

- C#
- VB.NET

<section id="tabpanel_dcKi2zJZb6-3_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code data-code-links="{&quot;/ (DevExpress.Xpf.Accordion)(?:;|$)/&quot;:&quot;/WPF/DevExpress.Xpf.Accordion&quot;}" class="lang-csharp">using DevExpress.Xpf.Accordion;
...

private void AccordionControl_CanSelectItem(object sender, CanSelectItemEventArgs e) {
    AccordionItem item = (AccordionItem)e.Item;
    if (item.Header.ToString() == &quot;Application Settings&quot;) {
        e.CanSelect = false;
    }
}
...
</code></pre></section>
<section id="tabpanel_dcKi2zJZb6-3_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code data-code-links="{&quot;/ (DevExpress.Xpf.Accordion)(?:;|$)/&quot;:&quot;/WPF/DevExpress.Xpf.Accordion&quot;}" class="lang-vb">Imports DevExpress.Xpf.Accordion
...

Private Sub AccordionControl_CanSelectItem(ByVal sender As Object, ByVal e As CanSelectItemEventArgs)
    Dim item As AccordionItem = CType(e.Item, AccordionItem)
    If item.Header.ToString() = &quot;Application Settings&quot; Then
        e.CanSelect = False
    End If
End Sub
...
</code></pre></section>

## Customize Item Selection

You can specify accordion item types an end-user can select.

Set the [AccordionControl.SelectionUnit](/WPF/DevExpress.Xpf.Accordion.AccordionControl.SelectionUnit) property to:

- [SelectionUnit.SubItem](/WPF/DevExpress.Xpf.Accordion.SelectionUnit) - to allow users to select **subitems** only.
- [SelectionUnit.SubItemOrRootItem](/WPF/DevExpress.Xpf.Accordion.SelectionUnit) - to allow users to select **root items and subitems**.

The following code sample demonstrates an [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) that allows users to select **subitems** only:

- XAML

<section id="tabpanel_dcKi2zJZb6-4_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl SelectionUnit=&quot;SubItem&quot;&gt;
   &lt;dxa:AccordionItem Header=&quot;Root Item&quot; Glyph=&quot;{dx:DXImage Image=Image_32x32.png}&quot;/&gt;
   &lt;dxa:AccordionItem Header=&quot;Root Item&quot; Glyph=&quot;{dx:DXImage Image=Map_32x32.png}&quot;&gt;
      &lt;dxa:AccordionItem Header=&quot;SubItem&quot; Glyph=&quot;{dx:DXImage Image=Map_16x16.png}&quot;/&gt;
      &lt;dxa:AccordionItem Header=&quot;SubItem&quot; Glyph=&quot;{dx:DXImage Image=Map_16x16.png}&quot;/&gt;
   &lt;/dxa:AccordionItem&gt;
&lt;/dxa:AccordionControl&gt;
</code></pre></section>

The image below shows the result:

![AccordionSelectionUnit](/WPF/images/accordionselectionunit132150.png)

## Customize Item Highlighting

Selectable and expandable accordion items are highlighted when you move the mouse pointer over them. Use the following properties to change this behavior:

| Property | Description |
| --- | --- |
| [AccordionItem.HighlightOnHover](/WPF/DevExpress.Xpf.Accordion.AccordionItem.HighlightOnHover) | Gets or sets whether the current item is highlighted when an end-user moves the mouse cursor over it. |
| [AccordionItem.HighlightOnPress](/WPF/DevExpress.Xpf.Accordion.AccordionItem.HighlightOnPress) | Gets or sets whether the current item is highlighted when an end-user clicks and holds the left mouse button. |

The following code sample shows an accordion item that you can highlight but not select:

- XAML

<section id="tabpanel_dcKi2zJZb6-5_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl SelectionMode=&quot;None&quot;&gt;
   &lt;dxa:AccordionItem Header=&quot;Root Item&quot; Glyph=&quot;{dx:DXImage Image=Image_32x32.png}&quot;/&gt;
   &lt;dxa:AccordionItem Header=&quot;Root Item&quot; Glyph=&quot;{dx:DXImage Image=Map_32x32.png}&quot;&gt;
      &lt;dxa:AccordionItem Header=&quot;SubItem&quot; Glyph=&quot;{dx:DXImage Image=Map_16x16.png}&quot; HighlightOnHover=&quot;True&quot; /&gt;
      &lt;dxa:AccordionItem Header=&quot;SubItem&quot; Glyph=&quot;{dx:DXImage Image=Map_16x16.png}&quot; /&gt;
   &lt;/dxa:AccordionItem&gt;
&lt;/dxa:AccordionControl&gt;
</code></pre></section>

The image below shows the result:

![AccordionSelectionHighlight](/WPF/images/accordionselectionhighlight132152.png)