public FeedVideoListPageViewModel(HohoemaApp hohoemaApp, PageManager pageManager, Views.Service.MylistRegistrationDialogService mylistDialogService) : base(hohoemaApp, pageManager, mylistDialogService, isRequireSignIn: true) { LastUpdate = new ReactiveProperty <DateTime>(); AllMarkAsReadCommand = new DelegateCommand(async() => { FeedGroup.ForceMarkAsRead(); await HohoemaApp.FeedManager.SaveOne(FeedGroup); AllMarkAsReadCommand.RaiseCanExecuteChanged(); } , () => { return((FeedGroup?.GetUnreadItemCount() ?? 0) > 0); }); SelectedItemsMarkAsReadCommand = SelectedItems.ToCollectionChanged() .Select(x => SelectedItems.Count(y => y.IsUnread.Value) > 0) .ToReactiveCommand(false) .AddTo(_CompositeDisposable); SelectedItemsMarkAsReadCommand.Subscribe(async _ => { foreach (var item in SelectedItems) { await HohoemaApp.FeedManager.MarkAsRead(item.VideoId); await HohoemaApp.FeedManager.MarkAsRead(item.RawVideoId); } ClearSelection(); }) .AddTo(_CompositeDisposable); OpenFeedGroupPageCommand = new DelegateCommand(() => { if (FeedGroup != null) { PageManager.OpenPage(HohoemaPageType.FeedGroup, FeedGroup.Id); } }); }