public void AsReadOnlyThrottledView() { var source = new ObservableCollection <int>(); using (source.AsReadOnlyThrottledView(TimeSpan.Zero)) { } using (source.AsReadOnlyFilteredView(x => true) .AsReadOnlyThrottledView(TimeSpan.Zero)) { } using (source.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)) .AsReadOnlyThrottledView(TimeSpan.Zero)) { } var readonlyInts = new ReadOnlyObservableCollection <int>(source); using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero)) { } using (readonlyInts.AsReadOnlyFilteredView(x => true) .AsReadOnlyThrottledView(TimeSpan.Zero)) { } using (readonlyInts.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)) .AsReadOnlyThrottledView(TimeSpan.Zero)) { } }
public void AsReadOnlyFilteredView() { var ints = new ObservableCollection <int>(); ints.AsReadOnlyFilteredView(x => true); ints.AsMappingView(x => x.ToString()) .AsReadOnlyFilteredView(x => true); ints.AsThrottledView(TimeSpan.Zero) .AsReadOnlyFilteredView(x => true); var readonlyInts = new ReadOnlyObservableCollection <int>(ints); readonlyInts.AsReadOnlyFilteredView(x => true); readonlyInts.AsMappingView(x => x.ToString()) .AsReadOnlyFilteredView(x => true); readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero) .AsReadOnlyFilteredView(x => true); Enumerable.Range(0, 2) .AsReadOnlyFilteredView(x => true, Mock.Of <IObservable <object> >()); }
protected AbstractChore(ReadOnlyObservableCollection <Repository> repositories) { this.mapped = repositories.AsMappingView( x => new BatchViewModel(x, this.UpdateTrigger, this.CreateBatch), x => x.Dispose()); this.Tasks = this.mapped.AsReadOnlyFilteredView( x => x.Batch != null, this.mapped.ObserveItemPropertyChangedSlim(x => x.Batch)); }
/// <summary> /// /// </summary> /// <typeparam name="TItem"></typeparam> /// <typeparam name="TValue"></typeparam> /// <param name="source"></param> /// <param name="selector"></param> /// <param name="whenEmpty"></param> /// <param name="trackItemChanges">If true we subscribe to property changes for each item. This is much slower.</param> /// <returns>A tracker with Value synced with source.Max()</returns> public static MaxTracker <TValue> TrackMax <TItem, TValue>(this ReadOnlyObservableCollection <TItem> source, Expression <Func <TItem, TValue> > selector, TValue?whenEmpty, bool trackItemChanges) where TItem : class, INotifyPropertyChanged where TValue : struct, IComparable <TValue> { var onItemChanged = trackItemChanges ? source.ObserveItemPropertyChanged(selector, false) : null; var mapped = source.AsMappingView(selector.Compile(), onItemChanged); return(new MaxTracker <TValue>(mapped, mapped.ObserveCollectionChangedSlim(false), whenEmpty)); }
public void AsReadOnlyFilteredView() { var source = new ObservableCollection <int>(); using (source.AsReadOnlyFilteredView(x => true)) { } using (source.AsMappingView(x => x.ToString()) .AsReadOnlyFilteredView(x => true)) { } using (source.AsReadOnlyThrottledView(TimeSpan.Zero) .AsReadOnlyFilteredView(x => true)) { } var readonlyInts = new ReadOnlyObservableCollection <int>(source); using (readonlyInts.AsReadOnlyFilteredView(x => true)) { } using (readonlyInts.AsMappingView(x => x.ToString()) .AsReadOnlyFilteredView(x => true)) { } using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero) .AsReadOnlyFilteredView(x => true)) { } using (Enumerable.Range(0, 2) .AsReadOnlyFilteredView(x => true, Mock.Of <IObservable <object> >())) { } }
public void AsMappingView() { var ints = new ObservableCollection <int>(); ints.AsMappingView(x => x.ToString()); ints.AsFilteredView(x => true) .AsMappingView(x => x.ToString()); ints.AsThrottledView(TimeSpan.Zero) .AsMappingView(x => x.ToString()); var readonlyInts = new ReadOnlyObservableCollection <int>(ints); readonlyInts.AsMappingView(x => x.ToString()); readonlyInts.AsReadOnlyFilteredView(x => true) .AsMappingView(x => x.ToString()); readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero) .AsMappingView(x => x.ToString()); }
public void AsMappingView() { // just checking that the overloads are right. // Will be compiler error if we dumb things. var source = new ObservableCollection <int>(); using (source.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } using (source.AsReadOnlyFilteredView(x => true) .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } using (source.AsReadOnlyThrottledView(TimeSpan.Zero) .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } var readonlyInts = new ReadOnlyObservableCollection <int>(source); using (readonlyInts.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } using (readonlyInts.AsReadOnlyFilteredView(x => true) .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero) .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))) { } }