private IWritableReactiveTable SetupAccountTable(IWritableReactiveTable accounts,
                                                         List <IReactiveColumn> baseAccountColumns,
                                                         Dispatcher dispatcher)
        {
            baseAccountColumns.ForEach(col => accounts.AddColumn(col));

            // Create the wire table
            var accountsWire = new ReactiveBatchedPassThroughTable(accounts, new WpfThreadMarshaller(dispatcher), _synchroniseTablesDelay);

            //            var accountsWire = new ReactiveTable(accounts);
            //            new BatchedTableSynchroniser(accountsWire, accounts, new WpfThreadMarshaller(dispatcher), _synchroniseTablesDelay);

            return(accountsWire);
        }
        private IWritableReactiveTable SetupPersonTable(IWritableReactiveTable people,
                                                        List <IReactiveColumn> baseColumns,
                                                        Dispatcher dispatcher)
        {
            // Wire up the two tables before the dynamic columns
            var peopleWire = new ReactiveBatchedPassThroughTable(people, new WpfThreadMarshaller(dispatcher), _synchroniseTablesDelay);

            //            var PeopleWire = new ReactiveTable(People);
            //            new BatchedTableSynchroniser(PeopleWire, People, new WpfThreadMarshaller(dispatcher), _synchroniseTablesDelay);

            people.AddColumn(new ReactiveCalculatedColumn2 <string, int, string>(
                                 PersonColumns.IdNameColumn,
                                 (IReactiveColumn <int>)baseColumns[0],
                                 (IReactiveColumn <string>)baseColumns[1],
                                 (idVal, nameVal) => idVal + nameVal));

            return(peopleWire);
        }