// Constructor
        public MainWindowViewModel()
        {
            _processEntityPool = new ProcessEntityPool();
            // cr inst of ViewModel add it to our collection
            ButtonCloseViewModel buttonCloseViewModel = new ButtonCloseViewModel();
            SearchBoxViewModel searchBoxViewModel = new SearchBoxViewModel(_processEntityPool);
            ProcessListViewModel processListViewModel = new ProcessListViewModel(_processEntityPool);
            ProgressBarRamViewModel progressBarRamViewModel = new ProgressBarRamViewModel();
            ProgressBarCpuViewModel progressBarCpuViewModel = new ProgressBarCpuViewModel();
            SliderViewModel sliderViewModel = new SliderViewModel();
            ButtonSnapShotViewModel buttonSnapShotViewModel = new ButtonSnapShotViewModel(_processEntityPool);

            this.ViewModels.Add(buttonCloseViewModel);
            this.ViewModels.Add(searchBoxViewModel);
            this.ViewModels.Add(processListViewModel);
            this.ViewModels.Add(progressBarRamViewModel);
            this.ViewModels.Add(progressBarCpuViewModel);
            this.ViewModels.Add(sliderViewModel);
            this.ViewModels.Add(buttonSnapShotViewModel);
        }
 // Contructor
 public ProcessListViewModel(ProcessEntityPool processEntityPool)
 {
     ProcessEntityPool = processEntityPool;
     AllProcesses = new ObservableCollection<ProcessEntity>();
     ProcessEntityPool.PropertyChanged += processEntityPool_PropertyChanged;
 }
 // Constructors
 public SearchBoxViewModel(ProcessEntityPool processEntityPool)
 {
     _processEntityPool = processEntityPool;
     this.PropertyChanged += SearchBoxViewModel_PropertyChanged;
 }
 // Constructors
 public ButtonSnapShotViewModel(ProcessEntityPool processEntityPool)
 {
     _processEntityPool = processEntityPool;
 }