public Accounts() { InitializeComponent(); using (var scope = App.Container.BeginLifetimeScope()) { this.BindingContext = vm = scope.Resolve <IAccountsViewModel>(); } }
/// <summary> /// Initializes a new instance of the <see cref="TransactionDetailsViewModel"/> class. /// </summary> /// <param name="validator">Validator for view model data.</param> /// <param name="accountsVM">Accounts view model.</param> /// <param name="categoriesVM">Categories view model.</param> public TransactionDetailsViewModel(IValidator validator, IAccountsViewModel accountsVM, ICategoriesViewModel categoriesVM) : base(validator) { this.accountsVM = accountsVM; this.categoriesVM = categoriesVM; var accounts = new BindableCollection <AccountDTO>(); accountsCollectionViewSource.Source = accounts; this.accountsVM.Reloaded += (sender, args) => { accounts.Clear(); foreach (var account in this.accountsVM.Accounts) { accounts.Add(account as AccountDTO); } if (!accountsCollectionViewSource.View.IsEmpty) { accountsCollectionViewSource.View.MoveCurrentToFirst(); } }; var categories = new BindableCollection <CategoryDTO>(); categoriesCollectionViewSource.Source = categories; this.categoriesVM.Reloaded += (sender, args) => { categories.Clear(); categories.AddRange(this.categoriesVM.Categories); if (!categoriesCollectionViewSource.View.IsEmpty) { categoriesCollectionViewSource.View.MoveCurrentToFirst(); } }; categoryFilter = (search, item) => { if (string.IsNullOrEmpty(search)) { return(true); } if (item is CategoryDTO) { string searchToLower = search.ToLower(CultureInfo.InvariantCulture); return((item as CategoryDTO).Name.ToLower(CultureInfo.InvariantCulture).Contains(searchToLower)); } return(false); }; }
public ShellViewModel( IProjectData projectData, IBusy busy, IMenuViewModel menu, IFullJournalViewModel fullJournal, IAccountJournalViewModel accountJournal, IAccountsViewModel accounts, IApplicationUpdate applicationUpdate) { this.ProjectData = projectData; this.Busy = busy; this.Menu = menu; this.FullJournal = fullJournal; this.AccountJournal = accountJournal; this.Accounts = accounts; this.applicationUpdate = applicationUpdate; this.version = this.GetType().GetInformationalVersion(); // TODO SVM is too much responsible this.ProjectData.DataLoaded += (sender, args) => { this.Accounts.OnDataLoaded(); this.Menu.OnDataLoaded(); }; this.ProjectData.YearChanged += (_, __) => { this.UpdateDisplayName(); this.FullJournal.Rebuild(); this.Accounts.SelectFirstAccount(); }; this.ProjectData.JournalChanged += (_, args) => { this.FullJournal.Rebuild(); this.FullJournal.Select(args.ChangedBookingId); if (this.Accounts.SelectedAccount == null || !args.AffectedAccounts.Contains(this.Accounts.SelectedAccount.Identifier)) { return; } this.AccountJournal.Rebuild(this.Accounts.SelectedAccount.Identifier); this.AccountJournal.Select(args.ChangedBookingId); }; this.Accounts.PropertyChanged += (_, args) => { if (args.PropertyName == nameof(this.Accounts.SelectedAccount)) { this.AccountJournal.Rebuild(this.Accounts.SelectedAccount?.Identifier ?? 0); } }; }
public AccountsView(IAccountsViewModel viewModel) { Debug.WriteLine("[Debug] AccountsView.AccountsView()"); this.DataContext = viewModel; this.Resources.Add("ViewModel", viewModel); InitializeComponent(); // Detect changes to BrokerageAccountSummaries viewModel.getUserContext().BrokerageAccountSummaries.CollectionChanged += new NotifyCollectionChangedEventHandler(BrokerageAccountSummariesChanged); ShowAccountsChart(); }
/// <summary> /// Initializes a new instance of the <see cref="MoneyTrackerViewModel"/> class. /// </summary> public MoneyTrackerViewModel( IAccountsViewModel accountsVM, ICategoriesViewModel categoriesVM, ITransactionsViewModel transactionsVM, ITransactionDetailsViewModel transactionDetailsVM, ITransferViewModel transferViewModel) { Accounts = accountsVM; Categories = categoriesVM; Transactions = transactionsVM; AddNew = transactionDetailsVM; Transfer = transferViewModel; }
/// <summary> /// Initializes a new instance of the <see cref="TransactionsViewModel"/> class. /// </summary> /// <param name="validator">Validator for view model data.</param> /// <param name="accountsVM">Accounts view model.</param> public TransactionsViewModel(IValidator validator, IAccountsViewModel accountsVM, ITransactionDetailsViewModel transactionDetailsVM, ITransferViewModel transferVM) : base(validator) { TransactionRecords = new BindableCollection <TransactionRecord>(); this.accountsVM = accountsVM; this.transactionDetailsVM = transactionDetailsVM; this.transferVM = transferVM; this.accountsVM.Accounts.CurrentChanged += (o, eventArgs) => { if (!this.accountsVM.Accounts.IsEmpty) { CurrentAccount = this.accountsVM.Accounts.CurrentItem as AccountDTO; } }; }
/// <summary> /// Initializes a new instance of the <see cref="TransferViewModel"/> class. /// </summary> /// <param name="validator">Validator for view model data.</param> /// <param name="accountsVM">Accounts view model.</param> public TransferViewModel(IValidator validator, IAccountsViewModel accountsVM) : base(validator) { this.accountsVM = accountsVM; var accounts1 = new BindableCollection <AccountDTO>(); accounts1CollectionViewSource.Source = accounts1; this.accountsVM.Reloaded += (sender, args) => { accounts1.Clear(); foreach (var account in this.accountsVM.Accounts) { accounts1.Add(account as AccountDTO); } if (!accounts1CollectionViewSource.View.IsEmpty) { accounts1CollectionViewSource.View.MoveCurrentToFirst(); } }; var accounts2 = new BindableCollection <AccountDTO>(); accounts2CollectionViewSource.Source = accounts2; this.accountsVM.Reloaded += (sender, args) => { accounts2.Clear(); foreach (var account in this.accountsVM.Accounts) { accounts2.Add(account as AccountDTO); } if (!accounts2CollectionViewSource.View.IsEmpty) { accounts2CollectionViewSource.View.MoveCurrentToFirst(); } }; }