Co to jest ObservableCollection? ObservableCollection<T> to kolekcja w języku C# dostępna w przestrzeni nazw System.Collections.ObjectModel. Służy do przechowywania elementów podobnie jak lista, ale dodatkowo informuje powiązany interfejs użytkownika o zmianach w kolekcji.
Jest szczególnie często używana w aplikacjach WPF, Xamarin, MAUI oraz we wzorcu MVVM, gdzie dane są wiązane z kontrolkami interfejsu, np. ListBox, ComboBox, DataGrid.
Najważniejsza cecha
ObservableCollection<T> automatycznie zgłasza zmiany takie jak:
- dodanie elementu,
- usunięcie elementu,
- wyczyszczenie kolekcji,
- zmiana zawartości kolekcji.
Dzieje się to dzięki implementacji interfejsu INotifyCollectionChanged.
Przykład użycia
using System.Collections.ObjectModel;
public class ViewModel
{
public ObservableCollection<string> Produkty { get; set; }
public ViewModel()
{
Produkty = new ObservableCollection<string>();
Produkty.Add("Monitor");
Produkty.Add("Klawiatura");
}
}
Jeżeli kolekcja Produkty jest powiązana z kontrolką w XAML, np. ListBox, to dodanie nowego elementu przez Add() może automatycznie odświeżyć widok.
Przykład w XAML
<ListBox ItemsSource="{Binding Produkty}" />
ObservableCollection a List List<T> przechowuje dane, ale nie informuje interfejsu użytkownika o zmianach. Jeśli dodamy element do List<T>, kontrolka może się nie odświeżyć automatycznie.
ObservableCollection<T> jest więc właściwym wyborem, gdy kolekcja ma być źródłem danych dla elementów UI i widok ma reagować na zmiany.
W kontekście egzaminu
Jeżeli pytanie mówi o kolekcji, która powiadamia element interfejsu użytkownika o dodaniu, usunięciu lub zmianie zawartości, poprawną odpowiedzią jest ObservableCollection.
Pytania egzaminacyjne związane z tym terminem (2)
ObservableCollection<T> to kolekcja w języku C# dostępna w przestrzeni nazw System.Collections.ObjectModel. Służy do przechowywania elementów podobnie jak lista, ale dodatkowo informuje powiązany interfejs użytkownika o zmianach w kolekcji.
Jest szczególnie często używana w aplikacjach WPF, Xamarin, MAUI oraz we wzorcu MVVM, gdzie dane są wiązane z kontrolkami interfejsu, np. ListBox, ComboBox, DataGrid.
Najważniejsza cecha
ObservableCollection<T> automatycznie zgłasza zmiany takie jak:
- dodanie elementu,
- usunięcie elementu,
- wyczyszczenie kolekcji,
- zmiana zawartości kolekcji.
Dzieje się to dzięki implementacji interfejsu INotifyCollectionChanged.
Przykład użycia
using System.Collections.ObjectModel;
public class ViewModel
{
public ObservableCollection<string> Produkty { get; set; }
public ViewModel()
{
Produkty = new ObservableCollection<string>();
Produkty.Add("Monitor");
Produkty.Add("Klawiatura");
}
}
Jeżeli kolekcja Produkty jest powiązana z kontrolką w XAML, np. ListBox, to dodanie nowego elementu przez Add() może automatycznie odświeżyć widok.
Przykład w XAML
<ListBox ItemsSource="{Binding Produkty}" />
ObservableCollection a List List<T> przechowuje dane, ale nie informuje interfejsu użytkownika o zmianach. Jeśli dodamy element do List<T>, kontrolka może się nie odświeżyć automatycznie.
ObservableCollection<T> jest więc właściwym wyborem, gdy kolekcja ma być źródłem danych dla elementów UI i widok ma reagować na zmiany.
W kontekście egzaminu
Jeżeli pytanie mówi o kolekcji, która powiadamia element interfejsu użytkownika o dodaniu, usunięciu lub zmianie zawartości, poprawną odpowiedzią jest ObservableCollection.
Pytania egzaminacyjne związane z tym terminem (2)
List<T> przechowuje dane, ale nie informuje interfejsu użytkownika o zmianach. Jeśli dodamy element do List<T>, kontrolka może się nie odświeżyć automatycznie.
ObservableCollection<T> jest więc właściwym wyborem, gdy kolekcja ma być źródłem danych dla elementów UI i widok ma reagować na zmiany.
W kontekście egzaminu
Jeżeli pytanie mówi o kolekcji, która powiadamia element interfejsu użytkownika o dodaniu, usunięciu lub zmianie zawartości, poprawną odpowiedzią jest ObservableCollection.