private void AddPrecomputedPrediction(ModelPrediction mp) { dispatcher.BeginInvoke(new Action(() => { ObservableModelPrediction.Add(mp); var buf = AvailableClasses.Where(x => x.Item1 == mp.ClassName).FirstOrDefault(); if (buf != null) { AvailableClasses[AvailableClasses.IndexOf(buf)] = new Tuple <string, int>(buf.Item1, buf.Item2 + 1); } else { AvailableClasses.Add(new Tuple <string, int>(mp.ClassName, 1)); } })); }
public ViewModel() { this.ObservableModelPrediction = new ObservableCollection <ModelPrediction>(); ObservableModelPrediction.CollectionChanged += ((sender, e) => { NotifyPropertyChanged("AvailableClasses"); }); this.FilteredObservableModelPrediction = CollectionViewSource.GetDefaultView(ObservableModelPrediction); this.FilteredObservableModelPrediction.Filter = delegate(object item) { ModelPrediction tmp = item as ModelPrediction; if (SelectedClass == null) { return(false); } return(tmp.ClassName == SelectedClass.Item1); }; this.AvailableClasses = new ObservableCollection <Tuple <string, int> >(); this.OpenCommand = new DelegateCommand(ExecuteOpen, CanExecuteOpen); this.StopCommand = new DelegateCommand(ExecuteStop, CanExecuteStop); this.ClearDataBaseCommand = new DelegateCommand(ExecuteClear, CanExecuteClear); this.GetStatsCommand = new DelegateCommand(ExecuteGetStats); }