ObservableCollection
ObservableCollection
es una clase en C# que implementa la interfaz INotifyCollectionChanged
. Esta clase está presente en el espacio de nombres System.Collections.ObjectModel
y se utiliza comúnmente en aplicaciones de WPF (Windows Presentation Foundation) y otros marcos de trabajo para la interfaz de usuario. La principal característica de ObservableCollection
es que notifica automáticamente a la interfaz de usuario cuando cambian los elementos en la colección, lo que facilita la actualización dinámica de la interfaz de usuario en respuesta a cambios en los datos.
Ejemplo Básico de ObservableCollection:
using System.Collections.ObjectModel;
public class ViewModel
{
// Definir una ObservableCollection de tipo Persona
public ObservableCollection<Persona> Personas { get; set; }
public ViewModel()
{
// Inicializar la ObservableCollection
Personas = new ObservableCollection<Persona>
{
new Persona { Nombre = "John", Edad = 30 },
new Persona { Nombre = "Alice", Edad = 25 },
new Persona { Nombre = "Bob", Edad = 35 }
};
}
}
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
}
En este ejemplo, ViewModel
tiene una propiedad Personas
de tipo ObservableCollection<Persona>
. Cuando agregas, eliminas o modificas elementos en Personas
, la interfaz de usuario se actualiza automáticamente. Esto es útil en escenarios de enlace de datos, especialmente en aplicaciones de WPF.
Manipulando ObservableCollection:
// Agregar un nuevo elemento
Personas.Add(new Persona { Nombre = "Eva", Edad = 28 });
// Eliminar un elemento
Persona personaEliminar = Personas.FirstOrDefault(p => p.Nombre == "Alice");
if (personaEliminar != null)
{
Personas.Remove(personaEliminar);
}
// Modificar un elemento
Persona personaModificar = Personas.FirstOrDefault(p => p.Nombre == "John");
if (personaModificar != null)
{
personaModificar.Edad = 31;
}
En este ejemplo, los cambios realizados en la colección se reflejarán automáticamente en la interfaz de usuario vinculada a la ObservableCollection
.
En aplicaciones de WPF, la interfaz de usuario escucha eventos de cambios (INotifyCollectionChanged
) de la ObservableCollection
y se actualiza de forma automática cuando se realizan cambios.
La ObservableCollection
es particularmente útil en escenarios donde la colección subyacente cambia dinámicamente y quieres que esos cambios se reflejen automáticamente en la interfaz de usuario.