'宣言 Public Class ComparisonCondition Implements ICondition
public class ComparisonCondition : ICondition
ComparisonCondition は、Operator プロパティで指定された演算子を使用して 2 つの値を比較する ICondition 実装です。演算子の右側の値は、Value プロパティによって指定されます。一致している値は左側の値で、IsMatch メソッドの呼び出しによって指定されます。
複数条件は ConditionGroup クラスを使ってグループ化できます。ICondition インターフェイスを実装し、任意にネスト化された条件の作成を許可します。ConditionGroup の ConditionGroup.LogicalOperator プロパティは、特定の条件グループ内で複数の条件を組み合わせるブール値を指定します。
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 ); } }