Cara: Memfilter Data dalam Tampilan
Contoh ini memperlihatkan cara memfilter data dalam tampilan.
Contoh
Untuk membuat filter, tentukan metode yang menyediakan logika pemfilteran. Metode ini digunakan sebagai panggilan balik dan menerima parameter jenis object
. Metode berikut mengembalikan semua Order
objek dengan properti yang filled
diatur ke "Tidak", memfilter objek lainnya.
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
Anda kemudian dapat menerapkan filter, seperti yang ditunjukkan dalam contoh berikut. Dalam contoh ini, myCollectionView
adalah ListCollectionView objek.
myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)
Untuk membatalkan pemfilteran, Anda dapat mengatur properti ke Filternull
:
myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing
Untuk informasi tentang cara membuat atau mendapatkan tampilan, lihat Mendapatkan Tampilan Default Kumpulan Data. Untuk contoh lengkapnya, lihat Mengurutkan dan Memfilter Item dalam Sampel Tampilan.
Jika objek tampilan Anda berasal dari CollectionViewSource objek, Anda menerapkan logika pemfilteran dengan mengatur penanganan aktivitas untuk peristiwa tersebut Filter . Dalam contoh berikut, listingDataView
adalah instans dari CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter
Berikut ini menunjukkan implementasi contoh ShowOnlyBargainsFilter
penanganan aktivitas filter. Penanganan aktivitas ini menggunakan Accepted properti untuk memfilter AuctionItem
objek yang memiliki CurrentPrice
$25 atau lebih besar.
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
Baca juga
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk