public CustomBalanceManagerViewModel(IQueryDispatcher queryDispatcher, ICommandDispatcher commandDispatcher) { _queryDispatcher = queryDispatcher; _commandDispatcher = commandDispatcher; AddCustomBalanceCommand = new RelayCommand(() => { var item = new CustomBalance(string.Empty); var query = new SearchStateQuery(); item.SearchesPicker.SetInput(Mapper.Map <SearchState[]>(_queryDispatcher.Execute <SearchStateQuery, DtoSearch[]>(query)).Select(x => new Selectable(x))); CustomBalances.Add(item); }); RemoveCustomBalanceCommand = new RelayCommand <CustomBalance>(ExecuteDeleteCommand); var customBalanceQuery = new CustomBalanceQuery(); var customBalances = _queryDispatcher.Execute <CustomBalanceQuery, DtoCustomBalance[]>(customBalanceQuery); CustomBalances = new TrulyObservableCollection <CustomBalance>(Mapper.Map <CustomBalance[]>(customBalances)); CustomBalances.CollectionChanged += CustomBalancesOnCollectionChanged; }
private void ExecuteDeleteCommand(CustomBalance selected) { _commandDispatcher.Execute(new DeleteCustomBalanceCommand(Mapper.Map <DtoCustomBalance>(selected))); CustomBalances.Remove(selected); }