private void SignalsList_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Delete)
            {
                SignalGeneratorViewModel model = DataContext as SignalGeneratorViewModel;
                if (model == null)
                {
                    return;
                }

                var selectedItems = SignalsList.SelectedItems;
                List <SignalItemView> copyOfSelectedItems = new List <SignalItemView>(selectedItems.Count);

                foreach (SignalItemView item in selectedItems)
                {
                    copyOfSelectedItems.Add(item);
                }

                foreach (SignalItemView item in copyOfSelectedItems)
                {
                    model.DeleteSignal(item.DataContext as Signal);
                }

                model.PlotSignals();
            }
        }
        private void AddSignal_Click(object sender, RoutedEventArgs e)
        {
            SignalGeneratorViewModel model = DataContext as SignalGeneratorViewModel;

            if (model != null)
            {
                try
                {
                    Signal newSignal = new Signal();
                    newSignal.Name          = SignalName.Text;
                    newSignal.SamplingHZ    = double.Parse(SamplingHz.Text);
                    newSignal.SignalHZ      = double.Parse(SignalHz.Text);
                    newSignal.Amplitude     = double.Parse(SignalAmplitude.Text);
                    newSignal.SampleSeconds = 2.0;
                    newSignal.Type          = SignalType.Source;
                    newSignal.IsActive      = true;
                    model.AddSignal(newSignal);
                }
                catch (Exception ex)
                {
                    // Todo show to user
                }
                ClearValues();

                model.PlotSignals();
            }
        }