Esempio n. 1
0
        /// <summary>
        /// Creates a cursor used for level measurements.
        /// </summary>
        internal static BoundCursor CreateLevelMeasurementCursor(
            MeasurementCursorViewModel cursorVM,
            ChannelViewModel cursorChannelConfiguration,
            bool isReferenceCursor,
            Func <double> deltaReferenceLevelProvider,
            Func <double> referenceLevelProvider)
        {
            Func <ScopeCursor, ValueConverter <double, double>, PB.Binding> bindingProvider =
                (cursor, valueConverter) => PB.Binding.Create(() =>
                                                              cursor.Position.Y == valueConverter.DerivedValue &&
                                                              valueConverter.OriginalValue == cursorVM.Value);

            var influencingObjects = new INotifyPropertyChanged[]
            {
                cursorChannelConfiguration,
                cursorChannelConfiguration.ReferencePointPosition
            };

            return(CreateMeasurementCursor(
                       MeasurementAxis.Y,
                       isReferenceCursor,
                       () => cursorVM.Value,
                       bindingProvider,
                       deltaReferenceLevelProvider,
                       () => cursorChannelConfiguration.YScaleFactor,
                       () => cursorChannelConfiguration.ReferencePointPosition.Y,
                       referenceLevelProvider,
                       cursorChannelConfiguration.BaseUnitString,
                       cursorChannelConfiguration.Color,
                       influencingObjects));
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a cursor used for time measurements.
        /// </summary>
        internal static BoundCursor CreateTimeMeasurementCursor(
            MeasurementCursorViewModel cursorVM,
            GraphbaseViewModel graphbaseVM,
            bool isReferenceCursor,
            Func <double> deltaReferenceLevelProvider,
            Func <double> referenceLevelProvider)
        {
            Func <ScopeCursor, ValueConverter <double, double>, PB.Binding> bindingProvider =
                (cursor, valueConverter) => PB.Binding.Create(() =>
                                                              cursor.Position.X == valueConverter.DerivedValue &&
                                                              valueConverter.OriginalValue == cursorVM.Value);

            var influencingObjects = new INotifyPropertyChanged[]
            {
                graphbaseVM,
                graphbaseVM.TriggerVM,
            };

            return(CreateMeasurementCursor(
                       MeasurementAxis.X,
                       isReferenceCursor,
                       () => cursorVM.Value,
                       bindingProvider,
                       deltaReferenceLevelProvider,
                       () => graphbaseVM.ScaleFactor,
                       () => graphbaseVM.TriggerVM.HorizontalPosition,
                       referenceLevelProvider,
                       graphbaseVM.BaseUnitString,
                       graphbaseVM.Color,
                       influencingObjects));
        }