Show / Hide Table of Contents

Практическое руководство. Фильтрация данных в представлении

В этом примере показано, как для фильтрации данных в представлении.

Пример

Чтобы создать фильтр, определите метод, который предоставляет логику фильтрации. Метод используется в качестве обратного вызова и принимает параметр типа object. Следующий метод возвращает все Order объекты с filled , имеющим значение «Нет», отфильтровывая остальные объекты.

public bool Contains(object de)
{
    Order order = de as Order;
    //Return members whose Orders have not been filled
    return(order.Filled== "No");
}

Затем можно применить фильтр, как показано в следующем примере. В этом примере myCollectionView является ListCollectionView объекта.

myCollectionView.Filter = new Predicate<object>(Contains);

Чтобы отменить фильтрацию, можно задать Filter свойства null:

myCollectionView.Filter = null;

Сведения о том, как для создания или получения представления, см. в разделе получение представления по умолчанию для коллекции данных. Полный пример см. в разделе Сортировка и фильтрация элементов в представлении-пример.

Если объект представления генерируется из CollectionViewSource объекта, применять логику фильтрации, установив обработчик событий для Filter событий. В следующем примере listingDataView является экземпляром класса CollectionViewSource.

listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);

Ниже приведена реализация примера ShowOnlyBargainsFilter обработчик событий фильтра. Этот обработчик событий использует Accepted свойство, чтобы отфильтровать AuctionItem объектов, имеющих CurrentPrice $ 25 или более поздней версии.

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;
        }
    }
}

См. также

  • CanFilter
  • CustomFilter
  • Общие сведения о привязке данных
  • Сортировка данных в представлении
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX