Źródło: Arkusze CKE
Z jakiej kolekcji powinno się korzystać, aby przechowywać informacje związane z elementem interfejsu użytkownika w taki sposób, aby ten element był informowany przez kolekcję o dodaniu, usunięciu lub zmianie jej zawartości?
Warianty odpowiedzi
-
A
ObservableCollection
-
B
KeyedCollection
-
C
ReadOnlyCollection
-
D
Collection
Wyjaśnienie
Zwykłe listy przechowują dane w pamięci, ale nie informują nikogo na zewnątrz o tym, że coś się w nich zmieniło. Jeśli dodasz nowy element do zwykłej listy, widok na ekranie sam z siebie się nie odświeży.
Tutaj wkracza ObservableCollection. Posiada ona wbudowany mechanizm powiadamiania (implementuje interfejs INotifyCollectionChanged). Za każdym razem, gdy dodasz, usuniesz lub wyczyścisz elementy w tej kolekcji, wysyła ona sygnał do interfejsu użytkownika.
Dzięki temu kontrolki na ekranie (np. lista produktów) automatycznie aktualizują swój wygląd bez konieczności ręcznego przerysowywania okna w kodzie.