public void BeginInitEndInit_WithISupportInitializeNotificationDataSourceInitialized_DoesNotWaitForDataSourceInitialize() { var dataSource = new ISupportInitializeNotificationDataSource { IsInitializedResult = true }; ISupportInitializeNotification source = new BindingSource(dataSource, nameof(ISupportInitializeNotificationDataSource.Member)); int callCount = 0; EventHandler handler = (sender, e) => { callCount++; Assert.Same(source, sender); Assert.Equal(EventArgs.Empty, e); }; source.Initialized += handler; source.BeginInit(); Assert.False(source.IsInitialized); Assert.Equal(0, callCount); source.EndInit(); Assert.True(source.IsInitialized); Assert.Equal(1, callCount); // Call again. source.EndInit(); Assert.True(source.IsInitialized); Assert.Equal(2, callCount); }
public void BeginInitEndInit_Invoke_Success() { ISupportInitializeNotification source = new BindingSource(); source.BeginInit(); Assert.False(source.IsInitialized); source.EndInit(); Assert.True(source.IsInitialized); }
public void BeginInitEndInit_SetDataSourceInInit_Success(object newDataSource) { var dataSource = new ISupportInitializeNotificationDataSource { IsInitializedResult = false }; ISupportInitializeNotification source = new BindingSource(dataSource, nameof(ISupportInitializeNotificationDataSource.Member)); int callCount = 0; EventHandler handler = (sender, e) => { callCount++; Assert.Same(source, sender); Assert.Equal(EventArgs.Empty, e); }; source.Initialized += handler; dataSource.Initialized += (sender, e) => { ((BindingSource)source).DataSource = newDataSource; }; source.BeginInit(); Assert.False(source.IsInitialized); Assert.Equal(0, callCount); // Call the source init - should not initialize and should instead wait for // the data source initialization. source.EndInit(); Assert.False(source.IsInitialized); Assert.Equal(0, callCount); // Then, call the data source init. dataSource.EndInit(); Assert.True(source.IsInitialized); Assert.Equal(1, callCount); // Call again. source.EndInit(); Assert.True(source.IsInitialized); Assert.Equal(2, callCount); }
private BindingSource _original; // to be set in constructor public void BeginInit() { // custom logic goes here _original.BeginInit(); }