Skip to content

Instantly share code, notes, and snippets.

@jcmm33
Created June 9, 2014 14:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jcmm33/2a297814a531d11cf89d to your computer and use it in GitHub Desktop.
Save jcmm33/2a297814a531d11cf89d to your computer and use it in GitHub Desktop.
ReactiveList monitoring
IObservable<bool> WhenAnyAreTrue(IEnumerable<SelItem> currentItems)
{
return currentItems != null && currentItems.Any()
? Observable.Return(currentItems.Any(p => p.Selected) != null)
: Observable.Return(false);
}
// monitor changes of MySelectItems, elements, and collection
this.WhenAnyValue(x => x.MySelectedItems).Select(_ => Unit.Default)
.Select(x =>
Observable.Merge(MySelectedItems != null ? MySelectedItems.ItemChanged.Select(_ => Unit.Default) : Observable.Return(Unit.Default),
MySelectedItems != null ? MySelectedItems.Changed.Select(_ => Unit.Default) : Observable.Return(Unit.Default)))
.Switch()
.Select(_ => WhenAnyAreTrue(MySelectedItems))
.Switch()
.ToProperty(this,x => x.Selected,out _Selected,false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment