Xceed Toolkit Plus for WPF v5.1 Documentation
Xceed.Wpf.ListBox Assembly / Xceed.Wpf.Data Namespace / OrFilterExpression Class
Example


In This Topic
    OrFilterExpression Class
    In This Topic
    Represents a logical OR filter expression, which states that an item must match one of the specified child filters in order to be included.
    Object Model
    OrFilterExpression ClassFilterExpressionCollection ClassFilterExpressionBase Class
    Syntax
    'Declaration
     
    
    <DebuggerDisplayAttribute("FilterBy = {DebuggerDisplayString}")>
    <ContentPropertyAttribute("ChildExpressions")>
    Public NotInheritable Class OrFilterExpression 
       Inherits FilterExpressionOperator
    'Usage
     
    
    Dim instance As OrFilterExpression
    [DebuggerDisplay("FilterBy = {DebuggerDisplayString}")]
    [ContentProperty("ChildExpressions")]
    public sealed class OrFilterExpression : FilterExpressionOperator 
    Remarks
    Once the filter expression has been created, it is considered "frozen" and its values can no longer be modified.
    Example
    <sldg:DataGridControl x:Name="sldgDataGridControl"
                          ItemsSource="{Binding Path=Orders}">
        <sldg:DataGridControl.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <sldg:SignatureThemeResourceDictionary />
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </sldg:DataGridControl.Resources>
        
        <sldg:DataGridControl.FixedHeaders>
            <CheckBox Content="Display only French-Speaking Countries"
                      Checked="CheckBox_Checked"
                      Unchecked="CheckBox_Unchecked"
                      Style="{StaticResource SignatureThemeCheckBoxStyle}"/>
            <sldg:FilterRow>
                <sldg:FilterRow.FilterExpression>
                    <sldg:AndFilterExpression>
                        <sldg:FilterExpression MemberName="ShipVia"
                                               Value="3"
                                               FilterOperator="Equal" />
                        <sldg:FilterExpression MemberName="OrderDate"
                                               Value="2008/01/01"
                                               FilterOperator="GreaterThanOrEqual"
                                               IsTimeSensitive="False"/>                            
                    </sldg:AndFilterExpression>
                </sldg:FilterRow.FilterExpression>
            </sldg:FilterRow>
        </sldg:DataGridControl.FixedHeaders>
    </sldg:DataGridControl>
    Private m_frenchCountries As New List( Of String)( New String( 27 )
           { "Belgium", "Benin", "Burkina-Faso", "Burundi", 
             "Cameroon", "Canada", "Central African Republic", "Chad", "Comoros", 
             "Congo", "Djibouti", "France", "Gabon", "Guinea", "Haiti", "Ivory Coast", 
             "Luxembourg", "Madagascar", "Mali", "Monaco", "Niger", "Rwanda", 
             "Senegal", "Seychelles", "Switzerland", "Togo", "Vanuatu" } ) 
    
    Private Function CreateFilterExpression() As OrFilterExpression 
       Dim childExpressions As New List( Of FilterExpressionBase )()
    
       Dim country As String
       For Each country In m_frenchCountries 
          Dim expression As New FilterExpression( "ShipCountry", FilterOperator.Equal, country, False )
          childExpressions.Add( expression )
       Next country 
    
       Return New OrFilterExpression( childExpressions )
    End Function 
    
    Private m_filterExpression As OrFilterExpression = Nothing
    Private Sub CheckBox_Checked( ByVal sender As Object, ByVal e As RoutedEventArgs )
       If m_filterExpression Is Nothing Then
          m_filterExpression = Me.CreateFilterExpression()
       End If 
    
       Me.sldgDataGridControl.FilterExpression = m_filterExpression
    End Sub 
    
    Private Sub CheckBox_Unchecked( ByVal sender As Object, ByVal e A RoutedEventArgs )
       Me.sldgDataGridControl.FilterExpression = Nothing
    End Sub
    private List<string> m_frenchCountries = new List<string>( new string[ 27 ] 
           { "Belgium", "Benin", "Burkina-Faso", "Burundi", 
             "Cameroon", "Canada", "Central African Republic", "Chad", "Comoros", 
             "Congo", "Djibouti", "France", "Gabon", "Guinea", "Haiti", "Ivory Coast", 
             "Luxembourg", "Madagascar", "Mali", "Monaco", "Niger", "Rwanda", 
             "Senegal", "Seychelles", "Switzerland", "Togo", "Vanuatu" } );
    
    private OrFilterExpression CreateFilterExpression()
    {
       List<FilterExpressionBase> childExpressions = new List<FilterExpressionBase>();
    
       foreach( string country in m_frenchCountries )
       {
          FilterExpression expression = new FilterExpression( "ShipCountry", FilterOperator.Equal, country, false );
          childExpressions.Add( expression );
       }
    
       return new OrFilterExpression( childExpressions );
    }
    
    private OrFilterExpression m_filterExpression = null;
    private void CheckBox_Checked( object sender, RoutedEventArgs e )
    {
       if( m_filterExpression == null )
          m_filterExpression = this.CreateFilterExpression();
    
       this.sldgDataGridControl.FilterExpression = m_filterExpression;
    }
    
    private void CheckBox_Unchecked( object sender, RoutedEventArgs e )
    {
       this.sldgDataGridControl.FilterExpression = null;
    }
    Inheritance Hierarchy

    System.Object
       Xceed.Wpf.Data.FilterExpressionBase
          Xceed.Wpf.Data.FilterExpressionOperator
             Xceed.Wpf.Data.OrFilterExpression

    Public Constructors
     NameDescription
    Public ConstructorOverloaded. Initializes a new instance of the OrFilterExpression class.  
    Top
    Public Properties
     NameDescription
    Public PropertyGets a list of the child filter expressions. (Inherited from Xceed.Wpf.Data.FilterExpressionOperator)
    Top
    Public Methods
     NameDescription
    Public MethodAdds a child filter expression, which will be used as part of a logical filter operation. (Inherited from Xceed.Wpf.Data.FilterExpressionOperator)
    Public MethodOverridden. Determines whether two objects are equal.  
    Public MethodOverridden. Returns the hash code for this instance.  
    Top
    Supported Frameworks

    .NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.

    .NET Framework: net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.

    See Also

    Reference

    OrFilterExpression Members
    Xceed.Wpf.Data Namespace
    cf224116-45e2-4539-9fd6-71cc219add2e