protected override void OnInitialize() { base.OnInitialize(); AddressesToMove = new List <Address>(); AddressSelector.Init(); AddressSelector.FilterChanged.Cast <object>() .Merge(Prices.SelectMany(x => x?.Select(p => p.Changed()).Merge().Throttle(Consts.FilterUpdateTimeout, UiScheduler) ?? Observable.Empty <EventPattern <PropertyChangedEventArgs> >())) .Merge(Prices.Where(x => x != null)) .Subscribe(_ => Update(), CloseCancellation.Token); RxQuery(s => s.Query <Price>().OrderBy(x => x.Name).Select(x => new Selectable <Price>(x)).ToList()) .Subscribe(Prices, CloseCancellation.Token); }
public static IObservable <EventPattern <PropertyChangedEventArgs> > FilterChanged <T>(this NotifyValue <IList <Selectable <T> > > selectable) { return(selectable.SelectMany(p => p?.Select(x => x.Changed()).Merge() ?? Observable.Empty <EventPattern <PropertyChangedEventArgs> >())); }