Nasıl yapılır: Veri CollectionView İçindeki Nesneler Aracılığıyla Gezinme
Görünümler aynı veri koleksiyonunun sıralamaya, filtrelemeye veya gruplandırmaya bağlı olarak farklı şekillerde görüntülenmesine izin verir. Görünümler aynı zamanda geçerli bir kayıt işaretçisi kavramı sağlar ve işaretçinin taşınmasını etkinleştirir. Bu örnek, geçerli nesnenin nasıl alınacağını ve sınıfta sunulan işlevleri kullanarak bir veri koleksiyonundaki nesneler arasında gezinme şeklini gösterir CollectionView .
Örnek
Bu örnekte, myCollectionViewCollectionView bağlantılı bir koleksiyon üzerinde bir görünüm olan bir nesnedir.
Aşağıdaki örnekte, OnButton bir uygulamadaki ve düğmelerine yönelik bir olay işleyicisidir Previous ve Next Bu, kullanıcının veri koleksiyonunda gezinmelerini sağlayan düğmelerdir. IsCurrentBeforeFirstVe IsCurrentAfterLast özelliklerinin, doğru şekilde MoveCurrentToFirst çağrılabilmesi için, geçerli kayıt işaretçisinin listenin başlangıcına ve sonuna gelip gelmediğini rapor edin MoveCurrentToLast .
CurrentItemGörünümün özelliği, Order koleksiyondaki geçerli sıra öğesini döndürecek şekilde olarak dönüştürüldü.
//OnButton is called whenever the Next or Previous buttons
//are clicked to change the currency
private void OnButton(Object sender, RoutedEventArgs args)
{
Button b = sender as Button;
switch (b.Name)
{
case "Previous":
myCollectionView.MoveCurrentToPrevious();
if (myCollectionView.IsCurrentBeforeFirst)
{
myCollectionView.MoveCurrentToLast();
}
break;
case "Next":
myCollectionView.MoveCurrentToNext();
if (myCollectionView.IsCurrentAfterLast)
{
myCollectionView.MoveCurrentToFirst();
}
break;
o = myCollectionView.CurrentItem as Order;
// TODO: do something with the current Order o
}
}
'OnButton is called whenever the Next or Previous buttons
'are clicked to change the currency
Private Sub OnButton(ByVal sender As Object, ByVal args As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
Select Case b.Name
Case "Previous"
myCollectionView.MoveCurrentToPrevious()
If myCollectionView.IsCurrentBeforeFirst Then
myCollectionView.MoveCurrentToLast()
End If
Case "Next"
myCollectionView.MoveCurrentToNext()
If myCollectionView.IsCurrentAfterLast Then
myCollectionView.MoveCurrentToFirst()
End If
Exit Select
o = TryCast(myCollectionView.CurrentItem, Order)
' TODO: do something with the current Order o
End Select
End Sub