private void RefreshCore(IProgress progress, object identity) { MultiRefreshableSource multiRefreshableSource = this.CreateRefresher(identity); this.refreshers.Add(multiRefreshableSource); this.Refreshing = true; multiRefreshableSource.RefreshingChanged += this.Refresher_RefreshingChanged; multiRefreshableSource.Refresh(progress); }
private void Refresher_RefreshingChanged(object sender, EventArgs e) { MultiRefreshableSource multiRefreshableSource = sender as MultiRefreshableSource; if (!multiRefreshableSource.Refreshing) { multiRefreshableSource.RefreshingChanged -= this.Refresher_RefreshingChanged; this.refreshers.Remove(multiRefreshableSource); if (this.refreshers.Count == 0) { this.Refreshing = false; } } }
private MultiRefreshableSource CreateRefresher(object identity) { MultiRefreshableSource multiRefreshableSource = new MultiRefreshableSource(); if (identity == null) { multiRefreshableSource.RefreshableSources.AddRange(this.DataTableLoaders.ToArray()); } else { foreach (DataTableLoader dataTableLoader in this.DataTableLoaders) { multiRefreshableSource.RefreshableSources.Add(new SingleRowRefreshObject(identity, dataTableLoader)); } } return(multiRefreshableSource); }