private void ObserveIndexChanges(IObservable <Unit> databaseChanged) { if (Database.Value != null) { Database.Value.IndexChanges .Where(n => n.Name.Equals(CollectionsIndex, StringComparison.InvariantCulture)) .SampleResponsive(TimeSpan.FromSeconds(2)) .TakeUntil(Unloaded.Merge(databaseChanged)) .ObserveOnDispatcher() .Subscribe(__ => RefreshCollectionsList()); } }