public void Initialize(Person person, Boolean registerAsTransient) { if (registerAsTransient) { this.RegisterTransient(); } this.SetInitialPropertyValue(() => this.FirstName, person.FirstName); this.SetInitialPropertyValue(() => this.LastName, person.LastName); this.addressesDataSource = new MementoEntityCollection <AddressViewModel>(); this.addressesDataSource.BulkLoad(person.Addresses, a => { var vm = this.CreateAddressViewModel(a, registerAsTransient); return(vm); }); this.Addresses = this.addressesDataSource.DefaultView; this.Addresses.AddingNew += (s, e) => { var vm = this.CreateAddressViewModel(null, true); e.NewItem = vm; e.AutoCommit = true; }; }
public void entityCollectionView_listChanged_event_in_multi_threaded_env_should_be_fired_in_the_creation_thread() { AsyncOperationManager.SynchronizationContext = new DispatcherSynchronizationContext(); var expected = Thread.CurrentThread.ManagedThreadId; var actual = 0; var wh = new EventWaitHandle( false, EventResetMode.ManualReset ); var list = new MementoEntityCollection<GenericParameterHelper>(); var view = list.DefaultView; view.ListChanged += ( s, e ) => { actual = Thread.CurrentThread.ManagedThreadId; //wh.Set(); }; new Thread( new ThreadStart( () => { list.Add( new GenericParameterHelper() ); } ) ).Start(); actual.Should().Be.EqualTo( expected ); }
public void entityCollectionView_listChanged_event_in_multi_threaded_env_should_be_fired_in_the_creation_thread() { AsyncOperationManager.SynchronizationContext = new DispatcherSynchronizationContext(); var expected = Thread.CurrentThread.ManagedThreadId; var actual = 0; var wh = new EventWaitHandle(false, EventResetMode.ManualReset); var list = new MementoEntityCollection <GenericParameterHelper>(); var view = list.DefaultView; view.ListChanged += (s, e) => { actual = Thread.CurrentThread.ManagedThreadId; //wh.Set(); }; new Thread(new ThreadStart(() => { list.Add(new GenericParameterHelper()); })).Start(); actual.Should().Be.EqualTo(expected); }