/// <summary> /// SpacomicMainViewModelクラスの新しいインスタンスを生成します。 /// </summary> public SpacomicMainViewModel() { // AppオブジェクトからModelを取得します。 spacomicRSSCollectionModel = (App.Current as App)?.SpacomicRSSCollectionModel; // Modelの参照の取得に失敗したら、例外をスローします。 if (spacomicRSSCollectionModel == null) { throw new Exception($"Failed to get reference of Model's instance on {GetType().ToString()}"); } // プロパティの変更を通知します。 spacomicRSSCollectionModel.PropertyChanged += (sender, e) => PropertyChanged?.Invoke(sender, e); // RSSフィードの取得が完了したことをView側に通知します。 spacomicRSSCollectionModel.GetRSSCompleted += (sender, e) => { // RSSフィード取得中のフラグをオフにします。 IsProgress = false; NotifyPropertyChanged(nameof(CanSwitchComicView)); // RSSフィード取得完了したことをView側に通知します。 GetRSSCompleted?.Invoke(this, e); }; // すぱこーRSSフィードの最新話が見つかったことを通知します。 spacomicRSSCollectionModel.NewRSSContentsFound += (sender, e) => NewRSSContentsFound?.Invoke(sender, e); }
/// <summary> /// SpacomicComicViewModelの新しいインスタンスを生成します。 /// </summary> public SpacomicComicViewModel() { // AppオブジェクトからModelを取得します。 spacomicRSSCollectionModel = (App.Current as App)?.SpacomicRSSCollectionModel; // Modelの参照の取得に失敗したら、例外をスローします。 if (spacomicRSSCollectionModel == null) { throw new Exception($"Failed to get reference of Model's instance on {GetType().ToString()}"); } spacomicRSSCollectionModel.PropertyChanged += SpacomicRSSCollectionModel_PropertyChanged; }
/// <summary> /// SpacoRSSCollectionViewModelの新しいインスタンスを生成します。 /// </summary> public SpacoRSSCollectionViewModel() { // AppオブジェクトからModelを取得します。 spacomicRSSCollectionModel = (App.Current as App)?.SpacomicRSSCollectionModel; // Modelの参照の取得に失敗したら、例外をスローします。 if (spacomicRSSCollectionModel == null) { throw new Exception($"Failed to get reference of Model's instance on {GetType().ToString()}"); } // プロパティの変更を通知します。 spacomicRSSCollectionModel.PropertyChanged += (sender, e) => PropertyChanged?.Invoke(sender, e); // RSSフィードの取得を開始したことをView側に通知します。 spacomicRSSCollectionModel.GetRSSStarted += (sender, e) => { IsProgress = true; Items = null; NotifyPropertyChanged(nameof(Items)); GetRSSStarted?.Invoke(this, e); }; // RSSフィードの取得が完了したことをView側に通知します。 spacomicRSSCollectionModel.GetRSSCompleted += (sender, e) => { // RSSフィード取得中のフラグをオフにします。 IsProgress = false; DivideItemsIntoTheGroupsOfMonth(); // RSSフィード取得完了したことをView側に通知します。 GetRSSCompleted?.Invoke(this, e); }; // 画像のキャッシュの削除が完了したことをView側に通知します。 spacomicRSSCollectionModel.ImageCachesDeleted += (sender, e) => { NotifyPropertyChanged(nameof(Items)); }; if (spacomicRSSCollectionModel.Items != null) { DivideItemsIntoTheGroupsOfMonth(); } }
/// <summary> /// AppSettingViewModelクラスの新しいインスタンスを生成します。 /// </summary> public AppSettingViewModel() { // AppオブジェクトからModelを取得します。 spacomicRSSCollectionModel = (App.Current as App)?.SpacomicRSSCollectionModel; // Modelの参照の取得に失敗したら、例外をスローします。 if (spacomicRSSCollectionModel == null) { throw new Exception($"Failed to get reference of Model's instance on {GetType().ToString()}"); } spacomicRSSCollectionModel.PropertyChanged += SpacomicRSSCollectionModel_PropertyChanged; spacomicRSSCollectionModel.ImageCachesDeleted += SpacomicRSSCollectionModel_ImageCachesDeleted; // パッケージ情報を取得します。 packageInfo = Package.Current.Id; }