private void Customers_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: { foreach (Customer customer in e.NewItems) { var customerViewModel = new TreeCustomerViewModel(_dataService, customer, _customerRepository, _userRepository, _fetchFilters); customerViewModel.IsLoadOnDemandEnabled = IsLoadOnDemandEnabled; Customers.Add(customerViewModel); } } break; case NotifyCollectionChangedAction.Remove: { foreach (Customer customer in e.OldItems) { var customerToRemove = Customers.SingleOrDefault(viewModel => viewModel.Customer.Id == customer.Id); if (customerToRemove != null) { Customers.Remove(customerToRemove); } } } break; } }
private void BindCustomerViewModels() { var customers = new ObservableCollection <TreeCustomerViewModel>(); foreach (var customer in _customerRepository.Customers.OrderBy(c => c.CustomerName)) { var customerViewModel = new TreeCustomerViewModel(_dataService, customer, _customerRepository, _userRepository, _fetchFilters) { IsLoadOnDemandEnabled = IsLoadOnDemandEnabled }; customers.Add(customerViewModel); } Customers = customers; //IsBusy = false; }