# Searching | WPF Controls | DevExpress Documentation

The [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) features a built-in [search panel](/WPF/118545/controls-and-libraries/navigation-controls/accordion-control/visual-elements/search-panel) that allows users to locate accordion items.

![AccordionSearch](/WPF/images/accordionsearch132153.png)

Set the [AccordionControl.ShowSearchControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl.ShowSearchControl) property to **true** to display the search panel.

- XAML

<section id="tabpanel_QG54iMul7e_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot;&gt; ... &lt;/dxa:AccordionControl&gt;
</code></pre></section>

Tip

You can apply a smart search to the [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl). Refer to the following help topic for more information: [Smart Search AI-powered Extension](/WPF/405385/ai-powered-extensions/smart-search).

This topic contains the following sections:

- Search Tag
- Data-Bound Filtering
- Search Customization

## Search Tag

Accordion items are filtered based on their [AccordionItem](/WPF/DevExpress.Xpf.Accordion.AccordionItem)**.Header** property value (**default**).

You can specify a **search tag** for an accordion item using the [AccordionItem.SearchTag](/WPF/DevExpress.Xpf.Accordion.AccordionItem.SearchTag) property. An accordion item whose search tag meets the filter criteria is included in the search result regardless of its [AccordionItem](/WPF/DevExpress.Xpf.Accordion.AccordionItem)**.Header** property value.

The following code sample demonstrates a data editor explicitly wrapped in an [AccordionItem](/WPF/DevExpress.Xpf.Accordion.AccordionItem) object that has a specified search tag:

- XAML

<section id="tabpanel_QG54iMul7e-1_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot;&gt;
   &lt;!-- --&gt;
   &lt;dxa:AccordionItem SearchTag=&quot;edit&quot;&gt;
      &lt;dxa:AccordionItem.Header&gt;
         &lt;dxe:TrackBarEdit/&gt;
      &lt;/dxa:AccordionItem.Header&gt;
   &lt;/dxa:AccordionItem&gt;
&lt;/dxa:AccordionControl&gt;
</code></pre></section>

The image below illustrates the result:

![AccordionSearchTag](/WPF/images/accordionsearchtag132154.png)

Note

Only accordion items defined explicitly (not generated from a data source) support search tags.

## Data-Bound Filtering

The data-bound [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) is filtered based on the data source values (**default**).

Tip

Refer to the [Data Binding](/WPF/118635/controls-and-libraries/navigation-controls/accordion-control/data-binding) topic for details on different approaches to binding the [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) to data.

You can use different binding types to specify data source fields that the accordion item displays. The following table displays binding types and their matching item rules:

| Binding type | Matching rule |
| --- | --- |
| [AccordionControl.DisplayMemberPath](/WPF/DevExpress.Xpf.Accordion.AccordionControl.DisplayMemberPath) | An item is included in the result if the underlying data object’s displayed value meets the search criteria. |
| Data template | An item is included in the result if the underlying data object’s `ToString()` value meets the search criteria. |

Note

The **Search Panel** feature does not support [BindingList](https://learn.microsoft.com/dotnet/api/system.componentmodel.bindinglist-1).

## SearchCustomization

### Customize Search Text

The [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) searches its items according to a string specified by an end user in the [search panel](/WPF/118545/controls-and-libraries/navigation-controls/accordion-control/visual-elements/search-panel). Use the `SearchText` property to obtain or specify the search string in code.

- XAML

<section id="tabpanel_QG54iMul7e-2_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot; SearchText=&quot;Carolyn&quot;&gt; ... &lt;/dxa:AccordionControl&gt;
</code></pre></section>

### Customize Filter Condition

The [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl) uses the **Contains** filter condition to construct filter criteria (**default**). Use the [AccordionControl.SearchControlFilterCondition](/WPF/DevExpress.Xpf.Accordion.AccordionControl.SearchControlFilterCondition) property to specify another filter condition:

- XAML

<section id="tabpanel_QG54iMul7e-3_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot; SearchControlFilterCondition=&quot;Equals&quot;&gt; ... &lt;/dxa:AccordionControl&gt;
</code></pre></section>

### Customize Filtering Logic

You can handle the [AccordionControl.CustomItemFilter](/WPF/DevExpress.Xpf.Accordion.AccordionControl.CustomItemFilter) event to customize the [AccordionControl](/WPF/DevExpress.Xpf.Accordion.AccordionControl)‘s filtering logic.

The following code sample excludes an accordion item from the search result:

- XAML

<section id="tabpanel_QG54iMul7e-4_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot; CustomItemFilter=&quot;OnCustomItemFilter&quot;&gt;
   &lt;dxa:AccordionItem Header=&quot;Item1&quot; Glyph=&quot;{dx:DXImage Image=Image_32x32.png}&quot;/&gt;
   &lt;dxa:AccordionItem Header=&quot;Item2&quot; Glyph=&quot;{dx:DXImage Image=Map_32x32.png}&quot;/&gt;
   &lt;dxa:AccordionItem Header=&quot;Item3&quot; Glyph=&quot;{dx:DXImage Image=Image_32x32.png}&quot;/&gt;
&lt;/dxa:AccordionControl&gt;
</code></pre></section>

- C#

<section id="tabpanel_QG54iMul7e-5_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code class="lang-csharp">void OnCustomItemFilter(object sender, AccordionCustomItemFilterEventArgs e) {
   if(((AccordionItem)e.Item).Header.ToString() == &quot;Item1&quot;) {
      e.Accepted = false;
   }
}
</code></pre></section>

The image below illustrates the result:

![AccordionSearchCustom](/WPF/images/accordionsearchcustom132157.png)

### Customize Search Panel Text

Use the [AccordionControl.SearchControlNullText](/WPF/DevExpress.Xpf.Accordion.AccordionControl.SearchControlNullText) property to specify a string that the search box displays when it is empty and not focused:

- XAML

<section id="tabpanel_QG54iMul7e-6_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;dxa:AccordionControl ShowSearchControl=&quot;True&quot; SearchControlNullText=&quot;Type here to search&quot;&gt; ... &lt;/dxa:AccordionControl&gt;
</code></pre></section>

The image below illustrates the result:

![AccordionSearchCustomText](/WPF/images/accordionsearchcustomtext132158.png)