private void filter_TextChanged(object sender, TextChangedEventArgs e) { if (searchBar.Text != "") { // new cats var _searchedGroups = new ObservableCollection <ProductsCategory>(); foreach (ProductsCategory category in clvm.ProductsCategory) { ProductsCategory newCat = new ProductsCategory(category.Parent, new List <ProductViewModel>(), category.Expanded) { ProductCount = category.Count }; if (category.Expanded) { foreach (var p in category) { if (p.Name.ToUpper().Contains(searchBar.Text.ToUpper())) { newCat.Add(p); } } } _searchedGroups.Add(newCat); } listeProduits.ItemsSource = _searchedGroups; } else { listeProduits.ItemsSource = clvm.ProductsCategory; } }
/// <summary> /// Crée le vue-modèle d'une catégorie et crée sa liste de produits correspondante /// </summary> /// <param name="category">La catégorie</param> public CategoryViewModel(Category category) { this.category = category; List <ProductViewModel> productsL = new List <ProductViewModel>(); foreach (Product p in category.Products) { ProductViewModel productvm = new ProductViewModel(p); productsL.Add(productvm); } products = new ProductsCategory(this, productsL); foreach (ProductViewModel productvm in productsL) { productvm.Category = this; } }
/// <summary> /// Met à jour la liste de produits /// </summary> private void UpdateListContent() { _expandedGroups = new ObservableCollection <ProductsCategory>(); foreach (ProductsCategory category in clvm.ProductsCategory) { ProductsCategory newCat = new ProductsCategory(category.Parent, new List <ProductViewModel>(), category.Expanded) { ProductCount = category.Count }; if (category.Expanded) { foreach (ProductViewModel p in category) { newCat.Add(p); } } _expandedGroups.Add(newCat); } listeProduits.ItemsSource = _expandedGroups; }