バージョン

RecordFilterDropDownPopulating イベント

フィルター ドロップダウンは、データ プレゼンターで作成される前に発生することによって、固有の項目でフィルター ドロップダウンを作成することができます。
シンタックス
'宣言
 
Public Event RecordFilterDropDownPopulating As EventHandler(Of RecordFilterDropDownPopulatingEventArgs)
public event EventHandler<RecordFilterDropDownPopulatingEventArgs> RecordFilterDropDownPopulating
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、RecordFilterDropDownPopulatingEventArgs 型の引数を受け取りました。次の RecordFilterDropDownPopulatingEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
AsynchLoadDuration 停止して別の AsynchLoadInterval を待つ前に一意の値を読み取るための最大ミリ秒数を指定します。
AsynchLoadInterval 非同期読み込み処理をトリガーするために使用するタイマー間隔を指定します。
AsynchLoadThreshhold 引き続き読み込み処理を非同期で行う前に、一意の値を読み取るために使用する最大ミリ秒数を指定します。
DropDownItems フィルター ドロップダウンに表示される項目を返します。新しいエントリの追加またはフィルター ドロップダウンから存在のエントリの削除をするのにリストの変更が可能です。
Field 関連付けられた Field を返します(読み取り専用)。
Handled System.Windows.RoutedEventArgsから継承されます。Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.
IncludeUniqueValues データ プレゼンターは、フィルター ドロップダウンリストにデータ ソースからの固有フィールド値を含む必要があるかどうかを指定します。
ItemsType DropDownItems または MenuItems がドロップダウンを事前に設定するために使用されるかどうかを示す列挙型を返します。
MenuItems フィルター ドロップダウンに表示されるメニュー項目を返します。新しいエントリの追加またはフィルター ドロップダウンから存在のエントリの削除をするのにリストの変更が可能です。
OriginalSource System.Windows.RoutedEventArgsから継承されます。Gets the original reporting source as determined by pure hit testing, before any possible System.Windows.RoutedEventArgs.Source adjustment by a parent class.
RaisedForCustomFilterSelectionControl ユーザーがカスタム フィルター選択のコントロールでフィルター ドロップダウンをドロップダウンした時に、このイベントが発生した場合は、True を返します。
RecordManager 関連付けられた RecordManager を返します(読み取り専用)。
RoutedEvent System.Windows.RoutedEventArgsから継承されます。Gets or sets the System.Windows.RoutedEventArgs.RoutedEvent associated with this System.Windows.RoutedEventArgs instance.
Source System.Windows.RoutedEventArgsから継承されます。Gets or sets a reference to the object that raised the event.
解説

RecordFilterDropDownPopulating は、ユーザーがフィルター セルでまたはフィールド ラベルのフィルター アイコンでフィルター ドロップダウンをドロップした時に発生します (FieldLayoutSettings.FilterUIType を参照ください)。イベント引数の DropDownItems プロパティを使用してフィルター ドロップダウンに表示されるアイテムのリストを操作できます。

使用例
Imports Infragistics.Windows
Imports Infragistics.Windows.Controls
Imports Infragistics.Windows.Editors
Imports Infragistics.Windows.DataPresenter
Imports Infragistics.Windows.DataPresenter.Events

    Private Sub Dp_RecordFilterDropDownPopulating(ByVal sender As Object, ByVal e As RecordFilterDropDownPopulatingEventArgs)
        If e.Field.EditAsTypeResolved Is GetType(String) Then
            ' At this point, e.DropDownItems will be pre-populated with special operands, like
            ' (Custom), (Blanks), (NonBlanks) etc... You can remove them if you don't want to
            ' display those options.
            ' 
            ' Remove all but (All) and (Custom) items from the drop-down.
            ' 
            Dim i As Integer
            For i = e.DropDownItems.Count - 1 To 0 Step -1
                ' Remove all but (All) and (Custom) items from the list.
                ' 
                If Not e.DropDownItems(i).DisplayText.StartsWith("(All)") _
                  AndAlso Not e.DropDownItems(i).DisplayText.StartsWith("(Custom)") Then
                    e.DropDownItems.RemoveAt(i)
                End If
            Next


            ' After this event is raised, data presenter will populate the drop-down with
            ' field values. If you don't want to display field values in the filter drop-down
            ' then set IncludeUniqueValues to false, which will prevent the data presenter
            ' from adding field values to the drop-down.
            ' 
            e.IncludeUniqueValues = False

            ' Add custom items. Items can be ICondition derived class (here we are using built-in
            ' ComparisonCondition), or a SpecialFilterBase derived class, or a ICommand (which
            ' lets you to take an action, like show a dialog). You can even implement your own 
            ' ICondition to provide completely custom logic.
            ' 
            Dim item As FilterDropDownItem
            item = New FilterDropDownItem(New ComparisonCondition(ComparisonOperator.Match, "^[A-F]"), "A-F")
            e.DropDownItems.Add(item)

            item = New FilterDropDownItem(New ComparisonCondition(ComparisonOperator.Match, "^[G-K]"), "G-K")
            e.DropDownItems.Add(item)

            item = New FilterDropDownItem(New ComparisonCondition(ComparisonOperator.Match, "^[L-P]"), "L-P")
            e.DropDownItems.Add(item)

            item = New FilterDropDownItem(New ComparisonCondition(ComparisonOperator.Match, "^[Q-Z]"), "Q-Z")
            e.DropDownItems.Add(item)
        End If
    End Sub
using Infragistics.Windows;
using Infragistics.Windows.Controls;
using Infragistics.Windows.Editors;
using Infragistics.Windows.DataPresenter;
using Infragistics.Windows.DataPresenter.Events;

		private void dp_RecordFilterDropDownPopulating( object sender, RecordFilterDropDownPopulatingEventArgs e )
		{
			if ( e.Field.EditAsTypeResolved == typeof( string ) )
			{
				// At this point, e.DropDownItems will be pre-populated with special operands, like
				// (Custom), (Blanks), (NonBlanks) etc... You can remove them if you don't want to
				// display those options.
				// 
				// Remove all but (All) and (Custom) items from the drop-down.
				// 
				for ( int i = e.DropDownItems.Count - 1; i >= 0; i-- )
				{
					// Remove all but (All) and (Custom) items from the list.
					// 
					if ( ! e.DropDownItems[i].DisplayText.StartsWith( "(All)" )
						&& ! e.DropDownItems[i].DisplayText.StartsWith( "(Custom)" ) )
					{
						e.DropDownItems.RemoveAt( i );
					}
				}

				// After this event is raised, data presenter will populate the drop-down with
				// field values. If you don't want to display field values in the filter drop-down
				// then set IncludeUniqueValues to false, which will prevent the data presenter
				// from adding field values to the drop-down.
				// 
				e.IncludeUniqueValues = false;

				// Add custom items. Items can be ICondition derived class (here we are using built-in
				// ComparisonCondition), or a SpecialFilterBase derived class, or a ICommand (which
				// lets you to take an action, like show a dialog). You can even implement your own 
				// ICondition to provide completely custom logic.
				// 
				FilterDropDownItem item;
				item = new FilterDropDownItem( new ComparisonCondition( ComparisonOperator.Match, "^[A-F]" ), "A-F" );
				e.DropDownItems.Add( item );

				item = new FilterDropDownItem( new ComparisonCondition( ComparisonOperator.Match, "^[G-K]" ), "G-K" );
				e.DropDownItems.Add( item );

				item = new FilterDropDownItem( new ComparisonCondition( ComparisonOperator.Match, "^[L-P]" ), "L-P" );
				e.DropDownItems.Add( item );

				item = new FilterDropDownItem( new ComparisonCondition( ComparisonOperator.Match, "^[Q-Z]" ), "Q-Z" );
				e.DropDownItems.Add( item );
			}
		}
参照