private void LoadFromBillProvider() { foreach (Bill bill in billProvider.Items) { var billViewModel = viewModelFactory.CreateBillViewModel(bill); allBills.Add(billViewModel); } }
public BillListViewModel(IDatabaseProvider <Bill> billProvider, IViewModelFactory viewModelFactory, ISelectedExpenseProvider selectedExpense ) { this.billProvider = billProvider; this.selectedExpense = selectedExpense; this.viewModelFactory = viewModelFactory; LoadFromBillProvider(); selectedExpense.SelectedExpenseChanged += (sender, e) => { OnPropertyChanged(new PropertyChangedEventArgs(nameof(Bills))); }; billProvider.DatabaseChanged += (sender, e) => { if (e.ChangedAction == ChangedAction.Add) { allBills.Add(viewModelFactory.CreateBillViewModel(e.DataItem)); } else if (e.ChangedAction == ChangedAction.Remove) { foreach (BillViewModel bill in allBills) { if (bill.Name.Equals(e.DataItem.Name)) { allBills.Remove(bill); break; } } } OnPropertyChanged(new PropertyChangedEventArgs(nameof(Bills))); }; }