Listy
Bindować się do list można na dwa sposoby:
- tak aby zobaczyć wszystkie dostępne obiekty na raz np. w kontrolce ListBox
 - stworzenie nawigacji na formatkach szczegółów - na raz widzimy opis tylko jednego elementu i dostarczamy interfejs aby użytkownik mógł przechodzić do kolejnych elementów listy
 
- ItemsSource - źródło danych
 - ItemTemplate - szablon wyświetlania danych
 - DisplayMemberPath - właściwość która będzie użyta jako tekst wyświetlany, dla pojedynczego elementu w kontrolce
 - IsSynchronizedWithCurrentItem - czy element wybrany jest tym samym elementem, który jest oznaczony jako wybrany w liście
 
Przykład ilustrujący powyżej opisane metody bindowania:
Code:
Code:
Efekt:
Nawigacja po liście
Po zbindowaniu kolekcji do kontrolki WPF tworzy automatycznie mechanizm do nawigowania po kolekcji. Za całość odpowiada interfejs ICollectionView, posiadający następujące składowe:
- CurrentItem - zwraca obecny element
 - CurrentPosition - zwraca aktualny indeks
 - IsCurrentAfterLast - flaga mówiąca czy obecny element jest za ostatnim w kolekcji
 - IsCurrentBeforeFirst - flaga mówiąca czy obecny element jest przed pierwszym w kolekcji
 - MoveCurrentTo - zmienia referencję obecnego elementu na ten który podamy
 - MoveCurrentToFirst - zmienia referencję obecnego elementu na pierwszy w kolekcji
 - MoveCurrentToLast - zmienia referencję obecnego elementu na ostatni w kolekcji
 - MoveCurrentToNext - zmienia referencję obecnego elementu na kolejny w kolekcji
 - MoveCurrentToPosition - zmienia referencję obecnego elementu na element podany przez indeks
 - MoveCurrentToPrevious - zmienia referencję obecnego elementu na poprzedni w kolekcji
 
- jeżeli kolekcja implementuje interfejs IBindingList zostanie zwrócona referencja do klasy BindingListCollectionView
 - jeżeli kolekcja implementuje interfejs IList ale nie implementuje IBindingList - zostanie zwrócona instancja klasy ListCollectionView
 - jeżeli kolekcja implementuje IEnumerable, ale nie implementuje ani IBindingList, ani IList zostanie zwrócona instancja klasy
 
Przykład aplikacji w której po liście obiektów można nawigować przy pomocy metod interfejsu ICollectionView udostępniłem tutaj: http://sdrv.ms/Si0Wz9
W aplikacji za pomocą komend możemy chodzić po liście obiektów pobranych z bazy AdventureWorks:



Brak komentarzy:
Prześlij komentarz