public Alternatives(Criteria criteria, ReferenceRanking referenceRanking) { _criteria = criteria; _referenceRanking = referenceRanking; AlternativesCollection = new ObservableCollection <Alternative>(); PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(AlternativesCollection)) { return; } SetReferenceRankingUsingReferenceRankAlternativeProperty(); InitializeCriteriaMinMaxUpdaterWatcher(); InitializeReferenceRankingUpdaterWatcher(); }; _criteria.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(_criteria.CriteriaCollection)) { return; } InitializeCriterionValueNameUpdaterWatcher(); }; InitializeCriteriaMinMaxUpdaterWatcher(); InitializeCriterionValueNameUpdaterWatcher(); InitializeReferenceRankingUpdaterWatcher(); }
public ReferenceRankingTabViewModel(ReferenceRanking referenceRanking, Alternatives alternatives) { Name = "Reference Ranking"; ReferenceRanking = referenceRanking; Alternatives = alternatives; AlternativesWithoutRanksCollectionView = new ListCollectionView(Alternatives.AlternativesCollection) { Filter = o => ((Alternative)o).ReferenceRank == null }; ReferenceRanking.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(ReferenceRanking.RankingsCollection)) { return; } RefreshFilter(); InitializeReferenceRankFilterWatchers(); }; Alternatives.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(Alternatives.AlternativesCollection)) { return; } AlternativesWithoutRanksCollectionView = new ListCollectionView(Alternatives.AlternativesCollection) { Filter = o => ((Alternative)o).ReferenceRank == null }; }; InitializeReferenceRankFilterWatchers(); NewRank = new ObservableCollection <Alternative>(); NewRank.CollectionChanged += (sender, args) => { if (args.Action != NotifyCollectionChangedAction.Add) { return; } // NewRank is cleared by AlternativeDroppedOnNewRank event handler, so we always have only one item in this collection ReferenceRanking.AddAlternativeToRank(NewRank[0], ReferenceRanking.RankingsCollection.Count); }; RemoveRankCommand = new RelayCommand(rank => ReferenceRanking.RemoveRank((int)rank)); RemoveAlternativeFromRankCommand = new RelayCommand(alternative => { var alternativeToRemove = (Alternative)alternative; if (alternativeToRemove.ReferenceRank != null) { ReferenceRanking.RemoveAlternativeFromRank(alternativeToRemove, (int)alternativeToRemove.ReferenceRank); } }); }
public Results CalculateResults(ReferenceRanking referenceRanking) { return(new Results()); }
public MainViewModel(IDialogCoordinator dialogCoordinator) { Criteria = new Criteria(); ReferenceRanking = new ReferenceRanking(); Alternatives = new Alternatives(Criteria, ReferenceRanking); Results = new Results(); _dialogCoordinator = dialogCoordinator; _saveData = new SaveData(null, null); Tabs = new ObservableCollection <ITab>(); Tabs.CollectionChanged += TabsCollectionChanged; ChartTabViewModels = new ObservableCollection <ChartTabViewModel>(); ShowTabCommand = new RelayCommand(tabViewModel => ShowTab((ITab)tabViewModel)); CriteriaTabViewModel = new CriteriaTabViewModel(Criteria); AlternativesTabViewModel = new AlternativesTabViewModel(Criteria, Alternatives); ReferenceRankingTabViewModel = new ReferenceRankingTabViewModel(ReferenceRanking, Alternatives); SettingsTabViewModel = new SettingsTabViewModel(); WelcomeTabViewModel = new WelcomeTabViewModel(); Criteria.CriteriaCollection.CollectionChanged += InstancePropertyChanged; Alternatives.AlternativesCollection.CollectionChanged += InstancePropertyChanged; ReferenceRanking.RankingsCollection.CollectionChanged += InstancePropertyChanged; Results.FinalRanking.FinalRankingCollection.CollectionChanged += InstancePropertyChanged; Criteria.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(Criteria.CriteriaCollection)) { return; } InstancePropertyChanged(); Criteria.CriteriaCollection.CollectionChanged += InstancePropertyChanged; }; Alternatives.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(Alternatives.AlternativesCollection)) { return; } InstancePropertyChanged(); Alternatives.AlternativesCollection.CollectionChanged += InstancePropertyChanged; }; ReferenceRanking.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(ReferenceRanking.RankingsCollection)) { return; } InstancePropertyChanged(); ReferenceRanking.RankingsCollection.CollectionChanged += InstancePropertyChanged; }; Results.FinalRanking.PropertyChanged += (sender, args) => { if (args.PropertyName != nameof(Results.FinalRanking.FinalRankingCollection)) { return; } InstancePropertyChanged(); Results.FinalRanking.FinalRankingCollection.CollectionChanged += InstancePropertyChanged; }; }