ListBoxEdit.FilterCriteria Property
Gets or sets the filter expression applied to the ListBoxEdit.ItemsSource. This is a dependency property.
Namespace: DevExpress.Xpf.Editors
Assembly: DevExpress.Xpf.Core.v24.1.dll
NuGet Package: DevExpress.Wpf.Core
Declaration
Property Value
Type | Description |
---|---|
CriteriaOperator | A CriteriaOperator descendant that represents the filter expression. |
Remarks
The ListBoxEdit control can filter an ItemSource data before the control displaying. Set the Filter Expression using the FilterCriteria property to do this.
Depending on an Item Source type, there are two approaches to create a filter expression:
Use the DisplayColumn value when the editor’s ItemSource is a simple type objects collection (string, byte, bool, int, etc.):
ListBoxEdit.FilterCriteria = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("DisplayColumn"), new OperandValue("ask0"));
Use the FilterCriteria property when the editor’s ItemSource is a complex type object (it has its own properties), for example:
Contains([PropertyName], '123')
. The code snippet below shows how to apply theEndsWith([CategoryName], 'es')
filter criteria:
For more information on how to create filter expressions, see Criteria Language Syntax and Creating Criteria.
Example
This example shows how to use the SearchControl to locate required items displayed within a list box. To execute a search, enter a text within the Find box, and the list box linked to the Search Control will display those records that have matching values.
<Window x:Class="ListBoxFilteringUsingSearchPanel.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<dxe:SearchControl x:Name="searchControl" Grid.Row="0" Margin="10"
HorizontalAlignment="Stretch" VerticalAlignment="Center"
FilterCondition="Contains"
FilterByColumnsMode="Custom">
<dxe:SearchControl.ColumnProvider>
<dxe:SelectorEditColumnProvider>
<dxe:SelectorEditColumnProvider.CustomColumns>
<sys:String>Name</sys:String>
</dxe:SelectorEditColumnProvider.CustomColumns>
</dxe:SelectorEditColumnProvider>
</dxe:SearchControl.ColumnProvider>
</dxe:SearchControl>
<dxe:ListBoxEdit Name="listBox" Grid.Row="1" Margin="10"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
DisplayMember="Name" ValueMember="ID"
FilterCriteria="{Binding FilterCriteria, ElementName=searchControl}">
</dxe:ListBoxEdit>
</Grid>
</Window>
using System.Windows;
namespace ListBoxFilteringUsingSearchPanel {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
listBox.ItemsSource = Staff.GetStaff();
}
}
}