Xceed DataGrid for Silverlight Documentation
FilterExpression Property (DataGridControl)
Example 


Gets or sets the filter expression, which is embedded into the data query that is used to request data and filter the items that are displayed in a grid.
Syntax
'Declaration
 
Public Property FilterExpression As FilterExpressionBase
'Usage
 
Dim instance As DataGridControl
Dim value As FilterExpressionBase
 
instance.FilterExpression = value
 
value = instance.FilterExpression
public FilterExpressionBase FilterExpression {get; set;}

Property Value

A FilterExpressionBase representing the filter expression, which is embedded into the data query that is used to request data and filter the items that are displayed in a grid.
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;
}
Requirements

Target Platforms: Windows 7, Windows Vista, Windows XP SP3, Windows Server 2008 family

See Also

Reference

DataGridControl Class
DataGridControl Members
FilterRow Class

Manipulating Data

Filtering Data

Send Feedback