es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿IEnumerable o ObservableCollection como getter en proyecto WPF?

Tengo una colección con algunos elementos.

public List Colección { get; set; }

Y necesito mostrar parte de esta colección en DataGrid o ListView.

public IEnumerable<t> ParteDeColección => Colección.Where(item => item.CampoAlguno == AlgúnValor);
public int AlgúnValor { get; set; }

<datagrid itemssource="{Binding ParteDeColección}"></datagrid>

ParteDeColección puede cambiar.
Sé que enlazar a una colección que no implementa INotifyPropertyChanged puede crear fugas de memoria.

¿Necesito convertir ParteDeColección a ObservableCollection como esto:

public ObservableCollection ParteDeColección => new ObservableCollection(Colección.Where(item => item.CampoAlguno == AlgúnValor);

o usar IEnumerable?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Deberías usar IEnumerable para tu PartOfCollection. ObservableCollection implementa la interfaz INotifyPropertyChanged, la cual se usa para notificar a la GUI cuando la colección cambie. Dado que PartOfCollection es un subconjunto de Collection, no cambiará cuando lo haga Collection, así que no hay necesidad de usar ObservableCollection.

Comments are closed.