Beispiel #1
0
 public override void SubscribeModel()
 {
     model.DayTableModels.ObserveAddChanged()
     .Subscribe(x =>
     {
         MainGroupListViewModel sameTitleViewModel = DayTableViewModels.FirstOrDefault(y => y.Title == x.Station);
         if (sameTitleViewModel != null)
         {
             sameTitleViewModel.Add(new DayTableViewModel(x));
         }
         else
         {
             DayTableViewModels.Add(new MainGroupListViewModel(x.Station)
             {
                 new DayTableViewModel(x)
             });
         }
     })
     .AddTo(Disposables);
     model.DayTableModels.ObserveResetChanged()
     .Subscribe(x => DayTableViewModels.Clear())
     .AddTo(Disposables);
     model.ObserveProperty(x => x.IsLoading)
     .Subscribe(x => isLoading.Value = x)
     .AddTo(Disposables);
     Observable.FromEventPattern <ErrorEventArgs>(h => model.ErrorOccurred += h, h => model.ErrorOccurred -= h)
     .Select(x => x.EventArgs)
     .Subscribe(x => ShowAlertCommand.Execute(x.Message))
     .AddTo(Disposables);
     LoadCommand.Subscribe(async _ => await model.LoadAsync())
     .AddTo(Disposables);
     LoadIfEmptyCommand.Subscribe(async _ => await model.LoadIfEmptyAsync())
     .AddTo(Disposables);
     ItemSelectedCommand.Subscribe(x => PushDayTableViewCommand.Execute(x.Clone()))
     .AddTo(Disposables);
     ItemAppearingCommand.Subscribe(x => x.SubscribeModel())
     .AddTo(Disposables);
     ItemDisappearingCommand.Subscribe(x => x.UnSubscribeModel())
     .AddTo(Disposables);
 }