Практическое руководство. Фильтрация данных в представлении
В этом примере демонстрируется фильтрация данных в представлении.
Пример
Для создания фильтра требуется определить метод, обеспечивающий логику фильтрации. Метод используется в качестве обратного вызова и принимает аргумент типа object. Следующий метод возвращает все объекты Order со свойством filled, установленным в «Нет», отфильтровывая остальные объекты.
Public Function Contains(ByVal de As Object) As Boolean
Dim order1 As Order = TryCast(de, Order)
Return (order1.Filled Is "No")
End Function
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;
}
}
}
См. также
Задачи
Практическое руководство. Сортировка данных в представлении
Ссылки
Основные понятия
Общие сведения о связывании данных