public GroupTestViewModel(IAccountBalanceDataService service)
        {
            var accountsTable = service.Accounts;

            _groupedAccounts = new AggregatedTable(accountsTable);
            _groupedAccounts.GroupBy <int>(AccountColumns.PersonId);
            var balanceColumn = (IReactiveColumn <decimal>)accountsTable.GetColumnByName(AccountColumns.AccountBalance);

            _groupedAccounts.AddAggregate(balanceColumn, SumColumnId, () => new Sum <decimal>());
            _groupedAccounts.AddAggregate(balanceColumn, CountColumnId, () => new Count <decimal>());
            _groupedAccounts.FinishInitialisation();

            var groups = new IndexedObservableCollection <BalanceGroup, int>(g => g.RowIndex);

            _groupedAccounts.ReplayAndSubscribe(
                update =>
            {
                if (update.Action == TableUpdateAction.Add)
                {
                    groups.Add(new BalanceGroup(_groupedAccounts, update.RowIndex));
                }
                else if (update.Action == TableUpdateAction.Delete)
                {
                    groups.RemoveAt(groups.GetIndexForKey(update.RowIndex));
                }
            });

            var accounts = new IndexedObservableCollection <AccountViewModel, int>(a => a.RowIndex);

            accountsTable.ReplayAndSubscribe(
                update =>
            {
                if (update.Action == TableUpdateAction.Add)
                {
                    var accountViewModel = new AccountViewModel(accountsTable, update.RowIndex);
                    accounts.Add(accountViewModel);
                    Debug.WriteLine("{1},Adding,,{0},", update.RowIndex, DateTime.Now.ToLongTimeString());
                }
                else if (update.Action == TableUpdateAction.Delete)
                {
                    var indexForKey      = accounts.GetIndexForKey(update.RowIndex);
                    var accountViewModel = accounts[indexForKey];
                    accounts.RemoveAt(indexForKey);
                    Debug.WriteLine("{1},Removing,{0}", accountViewModel.PersonId, DateTime.Now.ToLongTimeString());
                }
                else
                {
                    var indexForKey      = accounts.GetIndexForKey(update.RowIndex);
                    var accountViewModel = accounts[indexForKey];
                    Debug.WriteLine("{1},Modifying,{0},{2},{3}",
                                    accountViewModel.PersonId, DateTime.Now.ToLongTimeString(), update.RowIndex, update.Column.ColumnId);
                }
            });
            Groups   = groups;
            Accounts = accounts;
        }
        public PersonAccountsViewModel(IReactiveTable personAccounts, IWritableReactiveTable accounts)
        {
            _personAccounts = personAccounts;

            PersonAccounts = new IndexedObservableCollection <PersonAccountViewModel, int>(h => h.RowIndex);
            _subscription  = _personAccounts.ReplayAndSubscribe(OnNext);

            Change = new DelegateCommand(
                () => accounts.SetValue(AccountColumns.AccountBalance, CurrentRowIndex, (decimal)DateTime.Now.Millisecond));

            _personAccounts.ChangeNotifier.RegisterPropertyNotifiedConsumer(this, CurrentRowIndex);
        }
        public TableLegendItemViewModel(TimeDoubleCurve curve)
        {
            _dynamicRulerValues = new IndexedObservableCollection<DynamicRulerColumn>(
                (col, key) => col.FirstOrDefault(it => it.Name == key),
                key => new DynamicRulerColumn(key));

            Curve = curve;
            _curvePropChgObservable = Observable
                .FromEventPattern(Curve, "PropertyChanged")
                .ObserveOn(SynchronizationContext.Current)
                .Sample(TimeSpan.FromMilliseconds(100))
                .Subscribe(o => RefreshView());
            Curve.IsSelectedChanged += Curve_IsSelectedChanged;
        }
Beispiel #4
0
 private void InitializeData()
 {
     BoardGames = new IndexedObservableCollection <IndexedBoardGame>();
     cache      = BoardGameCache.Instance;
 }
Beispiel #5
0
 internal void Unload()
 {
     BoardGames = new IndexedObservableCollection <IndexedBoardGame>();
 }
Beispiel #6
0
 public Fahrzeug()
 {
     Fahrten = new IndexedObservableCollection<Fahrt>();
 }