Version

Conditions Property

Specifies filter conditions with which to filter data records.
Syntax
'Declaration
 
Public ReadOnly Property Conditions As ConditionGroup
public ConditionGroup Conditions {get;}
Remarks

Specifies one or more conditions that will be used to determine if a data record passes the record filter or not. The cell data associated with the record filter's Field will be evaluated against the conditions to determine if the data record should be filtered out. If the cell data does not satisfy these conditions, the data record will get filtered out. The DataRecord.IsFilteredOut property of the data record will reflect whether the data record met the filter conditions or not. By default filtered out data records are hidden - however FilterAction property lets you specify what action to take on filtered out records.

You can add any Infragistics.Windows.Controls.ICondition derived objects to the condition group. Built-in classes that implement this interface include Infragistics.Windows.Controls.ComparisonCondition, Infragistics.Windows.Controls.ComplementCondition and the Infragistics.Windows.Controls.ConditionGroup. The ComparisonCondition lets you specify commonly used filter criteria. The ComplementCondition complements results of another condition. Since Infragistics.Windows.Controls.ConditionGroup itself implements ICondition, you can essentially create condition groups within condition groups - essentially allowing you create arbitrarily nested conditions.

In addition, Infragistics.Windows.Controls.ComparisonCondition supports Infragistics.Windows.Controls.SpecialFilterOperandBase instances as its compare values. Built-in special operands are exposed off Infragistics.Windows.Controls.SpecialFilterOperands class as static properties. See Infragistics.Windows.Controls.SpecialFilterOperands for more information and listing of available special operands. These special operands (for example, FirstQuater, Today, ThisWeek, AboveAverage, Top10 etc...) let you quicky filter data by commonly used filter criteria. They are also extensible. You can create your own special operands (or override logic of any built-in special operand) by deriving a class from SpecialFilterOperandBase. You can also easily integrate such custom operands in the data presenter filtering UI by using SpecialFilterOperands's Infragistics.Windows.Controls.SpecialFilterOperands.Register(Infragistics.Windows.Controls.SpecialFilterOperandBase) method.

Example
The following sample code shows how you can specify record filters in code. It adds record filter criteria to root records and also child records, which is only applicable if you have hierarchical data source.

Imports Infragistics.Windows
Imports Infragistics.Windows.Controls
Imports Infragistics.Windows.Editors
Imports Infragistics.Windows.DataPresenter

    Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        
        Dim fieldLayout As FieldLayout = _dp.FieldLayouts(0)

        ' Create a new RecordFilter for 'Country' field.
        Dim filter As RecordFilter = New RecordFilter()
        filter.FieldName = "Country"
        filter.Conditions.Add(New ComparisonCondition(ComparisonOperator.Equals, "US"))

        ' Add the RecordFilter to field layout's RecordFilters collection.
        fieldLayout.RecordFilters.Add(filter)

        ' If you have hierarchical data source then you can also filter child records.
        ' Create a RecordFilter that filters the child records.
        filter = New RecordFilter()
        filter.FieldName = "Product"
        filter.Conditions.Add(New ComparisonCondition(ComparisonOperator.Equals, "A"))

        ' Now add the filter. For child field layouts, each individual parent
        ' record's child records can be filtered independently. That is one parent
        ' record's child records can have different filter criteria from another
        ' parent record's child records. This is the default mode of filtering. You
        ' can change it by setting RecordFilterScope property to AllRecords in which
        ' case all child records in the child field layout are affected by the
        ' filter. However depending on the mode, the place where you specify the
        ' filter criteria is different. For the default SiblingDataRecords mode, you
        ' need to specify the filter criteria on RecordFilters property of the child
        ' RecordManager of a parent record. For the AllRecords mode, use the child
        ' FieldLayout's RecordFilters property. Note that the root field layout
        ' doesn't support SiblingDataRecords mode since it doesn't have multiple
        ' record collections and therefore for the root field layout, always use the
        ' field layout's RecordFilters property.
        ' 
        Dim childDataRecordsManager As RecordManager = _dp.RecordManager.Unsorted(0).ChildRecords(0).ChildRecordManager
        Dim childFieldLayout As FieldLayout = _dp.FieldLayouts(1)
        childFieldLayout.Settings.RecordFilterScope = RecordFilterScope.AllRecords
        If RecordFilterScope.AllRecords = childFieldLayout.Settings.RecordFilterScope Then
            ' When using AllRecords mode, use the field layout's RecordFilters.
            childFieldLayout.RecordFilters.Add(filter)
        Else
            ' When using SiblingDataRecords, use the child RecordManager's RecordFilters.
            childDataRecordsManager.RecordFilters.Add(filter)
        End If

    End Sub
using Infragistics.Windows;
using Infragistics.Windows.Controls;
using Infragistics.Windows.Editors;
using Infragistics.Windows.DataPresenter;

		public void Window1_Loaded( object sender, RoutedEventArgs e )
		{
			FieldLayout fieldLayout = _dp.FieldLayouts[0];

			// Create a new RecordFilter for 'Country' field.
			RecordFilter filter = new RecordFilter( );
			filter.FieldName = "Country";
			filter.Conditions.Add( new ComparisonCondition( ComparisonOperator.Equals, "US" ) );

			// Add the RecordFilter to field layout's RecordFilters collection.
			fieldLayout.RecordFilters.Add( filter );

			// If you have hierarchical data source then you can also filter child records.
			// Create a RecordFilter that filters the child records.
			filter = new RecordFilter( );
			filter.FieldName = "Product";
			filter.Conditions.Add( new ComparisonCondition( ComparisonOperator.Equals, "A" ) );

			// Now add the filter. For child field layouts, each individual parent
			// record's child records can be filtered independently. That is one parent
			// record's child records can have different filter criteria from another
			// parent record's child records. This is the default mode of filtering. You
			// can change it by setting RecordFilterScope property to AllRecords in which
			// case all child records in the child field layout are affected by the
			// filter. However depending on the mode, the place where you specify the
			// filter criteria is different. For the default SiblingDataRecords mode, you
			// need to specify the filter criteria on RecordFilters property of the child
			// RecordManager of a parent record. For the AllRecords mode, use the child
			// FieldLayout's RecordFilters property. Note that the root field layout
			// doesn't support SiblingDataRecords mode since it doesn't have multiple
			// record collections and therefore for the root field layout, always use the
			// field layout's RecordFilters property.
			// 
			RecordManager childDataRecordsManager = _dp.RecordManager.Unsorted[0].ChildRecords[0].ChildRecordManager; 
			FieldLayout childFieldLayout = _dp.FieldLayouts[1];
			childFieldLayout.Settings.RecordFilterScope = RecordFilterScope.AllRecords;
			if ( RecordFilterScope.AllRecords == childFieldLayout.Settings.RecordFilterScope )
			{
				// When using AllRecords mode, use the field layout's RecordFilters.
				childFieldLayout.RecordFilters.Add( filter );
			}
			else
			{
				// When using SiblingDataRecords, use the child RecordManager's RecordFilters.
				childDataRecordsManager.RecordFilters.Add( filter );
			}
		}
        <igDP:XamDataGrid x:Name="_dp" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >

            
<igDP:XamDataGrid.FieldLayouts>
                
                
<!--Set filter on root field layout-->
                
<igDP:FieldLayout IsDefault="true">
                    
<igDP:FieldLayout.Fields>
                        
<igDP:Field Name="ID" />
                        
<igDP:Field Name="Country" />
                    
</igDP:FieldLayout.Fields>
                    
                    
<!--Set filter where records with Country=US will be displayed-->
                    
<igDP:FieldLayout.RecordFilters>
                        
<igDP:RecordFilter FieldName="Country">
                            
<igWindows:ComparisonCondition Operator="Equals" Value="US" />
                        
</igDP:RecordFilter>
                    
</igDP:FieldLayout.RecordFilters>
                    
                
</igDP:FieldLayout>

                
<!--Set filter on a child field layout. Only applicable if you have hierarchical data source.-->
                
<igDP:FieldLayout>
                    
<igDP:FieldLayout.Fields>
                        
<igDP:Field Name="ID" />
                        
<igDP:Field Name="Product" />
                    
</igDP:FieldLayout.Fields>

                    
<!--For child field layouts, you need to set the RecordFilterScope to AllRecords in order to
                    specify filters on the FieldLayout's RecordFilters.
-->
                    
<igDP:FieldLayout.Settings>
                        
<igDP:FieldLayoutSettings RecordFilterScope="AllRecords" />
                    
</igDP:FieldLayout.Settings>

                    
<!--Set filter where records with Product that starts with 'A' will be displayed.-->
                    
<igDP:FieldLayout.RecordFilters>
                        
<igDP:RecordFilter FieldName="Product">
                            
<igWindows:ComparisonCondition Operator="StartsWith" Value="A" />
                        
</igDP:RecordFilter>
                    
</igDP:FieldLayout.RecordFilters>

                
</igDP:FieldLayout>
                
            
</igDP:XamDataGrid.FieldLayouts>
            
        
</igDP:XamDataGrid>
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also