Astuce : ObservableCollection HasItems
Souvent, lorsque j’affiche des listes, si celles-ci sont vides j’affiche un texte alternatif.
Avant je devais toujours faire un converter pour pouvoir afficher ce texte.
Et puis j’ai eu l’idée d’hériter d’ObservableCollection pour lui rajouter la propriété HasItem.
Désormais je me bind directement à la propriété HasItem pour afficher ou non ce texte alternatif.
Qu’en pensez-vous?
public class HasItemObservableCollection<T> : ObservableCollection<T> { bool _hasItem; protected override void ClearItems() { base.ClearItems(); FireHasItemChanged(); } protected override void RemoveItem(int index) { base.RemoveItem(index); FireHasItemChanged(); } protected override void InsertItem(int index, T item) { base.InsertItem(index, item); FireHasItemChanged(); } void FireHasItemChanged() { bool oldHasItem = _hasItem; _hasItem = Items.Any(); if (oldHasItem != HasItem) base.OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs("HasItem")); } /// <summary> /// Obtient si la collection à des Items /// </summary> public bool HasItem { get { return _hasItem; } } }