public void SetDataContext(VisualWaveForm visualWaveForm, bool isBinding) { VisualLinerSamples samples = new VisualLinerSamples(); samples.TimeAxis = _internalTimeAxis; samples.YAxis = visualWaveForm.YAxis; samples.Samples = visualWaveForm.WaveSamples; _linerGraph.SetDataContext(samples); _internalTimeAxis.CopyPropertiesFrom(visualWaveForm.TimeAxis); _internalTimeAxis.SampleInterval = (double)1000 / visualWaveForm.Format.SamplesPerSecond; if (isBinding) { visualWaveForm.PropertyChanged += OnWaveFormPropertyChanged; _timeAxisPropertiesBinder = new ViewDataPropertyBinder(_internalTimeAxis, visualWaveForm.TimeAxis); _timeAxisPropertiesBinder.ExcludedProperties.Add("SampleInterval"); } }
/// <summary> /// Link all components' time axis to specific time axis. /// </summary> /// <param name="timeAxis">VisualTimeAxis.</param> public void LinkTimeAxis(VisualTimeAxis timeAxis) { F0.TimeAxis = timeAxis; Gain.TimeAxis = timeAxis; Durations.TimeAxis = timeAxis; using (ViewDataPropertyBinder propertyBinder = new ViewDataPropertyBinder(WaveForm.TimeAxis, timeAxis)) { propertyBinder.ExcludedProperties.Add("SampleInterval"); _timeAxis = timeAxis; } }