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