方法: ビュー内のデータをフィルター処理するHow to: Filter Data in a View

この例では、ビュー内のデータをフィルター処理する方法を示します。This example shows how to filter data in a view.

Example

フィルターを作成するには、フィルター処理のロジックを提供するメソッドを定義します。To create a filter, define a method that provides the filtering logic. メソッドは、コールバックとして使用され、型のパラメーターを受け入れるobjectします。The method is used as a callback and accepts a parameter of type object. 次のメソッドは、すべてを返します、Orderオブジェクトをfilledプロパティを"No"に、オブジェクトの残りの部分でフィルター処理を設定します。The following method returns all the Order objects with the filled property set to "No", filtering out the rest of the objects.

public bool Contains(object de)
{
    Order order = de as Order;
    //Return members whose Orders have not been filled
    return(order.Filled== "No");
}
Public Function Contains(ByVal de As Object) As Boolean
    Dim order1 As Order = TryCast(de, Order)
    Return (order1.Filled Is "No")
End Function

次の例に示すように、フィルターを適用できます。You can then apply the filter, as shown in the following example. この例でmyCollectionViewは、ListCollectionViewオブジェクト。In this example, myCollectionView is a ListCollectionView object.

myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)

フィルター処理を元に戻すには、設定することができます、Filterプロパティをnull:To undo filtering, you can set the Filter property to null:

myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing

ビューを取得または作成する方法については、次を参照してください。データ コレクションの既定のビューを取得します。For information about how to create or obtain a view, see Get the Default View of a Data Collection. 完全な例では、次を参照してください。並べ替えとビューのサンプル内の項目をフィルター処理します。For the complete example, see Sorting and Filtering Items in a View Sample.

ビュー オブジェクトの場合、CollectionViewSourceオブジェクトのイベント ハンドラーを設定してフィルター処理のロジックを適用する、Filterイベント。If your view object comes from a CollectionViewSource object, you apply filtering logic by setting an event handler for the Filter event. 次の例では、listingDataViewのインスタンスであるCollectionViewSourceします。In the following example, listingDataView is an instance of CollectionViewSource.

listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter

この例の実装を次に示しますShowOnlyBargainsFilterフィルター イベント ハンドラー。The following shows the implementation of the example ShowOnlyBargainsFilter filter event handler. このイベント ハンドラーを使用して、Acceptedプロパティをフィルターで除外AuctionItemを持つオブジェクトをCurrentPrice25 ドル以上。This event handler uses the Accepted property to filter out AuctionItem objects that have a CurrentPrice of $25 or greater.

private void ShowOnlyBargainsFilter(object sender, FilterEventArgs e)
{
    AuctionItem product = e.Item as AuctionItem;
    if (product != null)
    {
        // Filter out products with price 25 or above
        if (product.CurrentPrice < 25)
        {
            e.Accepted = true;
        }
        else
        {
            e.Accepted = false;
        }
    }
}
Private Sub ShowOnlyBargainsFilter(ByVal sender As Object, ByVal e As FilterEventArgs)
    Dim product As AuctionItem = CType(e.Item, AuctionItem)
    If Not (product Is Nothing) Then
        'Filter out products with price 25 or above
        If product.CurrentPrice < 25 Then
            e.Accepted = True
        Else
            e.Accepted = False
        End If
    End If
End Sub

関連項目See also