private void ViewModel_CommandHandler(object sender, string e)
        {
            switch (e)
            {
            case "Plot.Refresh":
                PlotViewModel.InvalidatePlot(true);
                PlotArchiveViewModel.InvalidatePlot(true);
                PlotUsbViewModel.InvalidatePlot(true);
                break;

            case "Table.Refresh":
                TableViewModel.Refresh();
                TableArchiveViewModel.Refresh();
                TableUsbViewModel.Refresh();
                break;

            case "DataGrid.Refresh":
                SeriesOnlineDataGridViewModel.Refresh();
                SeriesArchiveDataGridViewModel.Refresh();
                SeriesUsbDataGridViewModel.Refresh();
                break;
            }
        }
        public MainWindowViewModel()
        {
            this.ParentViewModel = null;
            this.StringBuilder   = new StringBuilder();
            SeriesOnline         = new ObservableCollection <Serie>();
            SeriesArchive        = new ObservableCollection <Serie>();
            SeriesUsb            = new ObservableCollection <Serie>();

            ConnectionViewModel = new ConnectionViewModel(this, plc);
            ConnectionViewModel.CommandHandler += ViewModel_CommandHandler;

            //Load settings from settings.xml
            //string settingsFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "settings.xml")

            //As default in properties region


            PlotViewModel = new PlotViewModel(this, plot, SeriesOnline);
            PlotViewModel.CommandHandler += ViewModel_CommandHandler;
            TableViewModel = new TableViewModel(this, SeriesOnline);
            TableViewModel.CommandHandler += ViewModel_CommandHandler;
            SeriesOnlineDataGridViewModel  = new SeriesOnlineDataGridModelView(this, SeriesOnline);
            SeriesOnlineDataGridViewModel.CommandHandler += ViewModel_CommandHandler;

            PlotArchiveViewModel = new PlotViewModel(this, plotArchive, SeriesArchive);
            PlotArchiveViewModel.CommandHandler += ViewModel_CommandHandler;
            TableArchiveViewModel = new TableViewModel(this, SeriesArchive);
            TableArchiveViewModel.CommandHandler          += ViewModel_CommandHandler;
            SeriesArchiveDataGridViewModel                 = new SeriesArchiveDataGridViewModel(this, SeriesArchive);
            SeriesArchiveDataGridViewModel.CommandHandler += ViewModel_CommandHandler;

            ConnectionTerminalViewModel                = new ConnectionTerminalViewModel(this);
            PlotUsbViewModel                           = new PlotViewModel(this, plotUsb, SeriesUsb);
            PlotUsbViewModel.CommandHandler           += ViewModel_CommandHandler;
            TableUsbViewModel                          = new TableViewModel(this, SeriesUsb);
            TableUsbViewModel.CommandHandler          += ViewModel_CommandHandler;
            SeriesUsbDataGridViewModel                 = new SeriesUsbDataGridViewModel(this, SeriesUsb);
            SeriesUsbDataGridViewModel.CommandHandler += ViewModel_CommandHandler;

            EditSettings = new RelayCommand(EditSettingsAction);
            LoadSettings();

            plc.ConnectionStatusChanged += Plc_ConnectionStatusChanged;
            plc.ConnectionStatusChanged += PlotViewModel.ConnectionStatusChanged;
            //ConnectionViewModel.Refresh();



            SeriesOnline.CollectionChanged += Series_CollectionChanged;
            //suszarka = new Serie("Suszarka", 150);
            getValuesTimer          = new System.Timers.Timer();
            getValuesTimer.Elapsed += GetValuesTimer_Elapsed;
            SelectedTabIndex        = 0;

            //Series.Add(suszarka);



            //TODO
            //Strzałka aby rozciągnąć Y na górę i dół na maksa


            //getValuesTimer.Interval = interval * 1000;
            //getValuesTimer.Enabled = true;
        }