Наследование: Microsoft.Practices.Phone.Adapters.CompassSensorReading
        public void ChangeCurrentValue(double headingAccuracy, double magneticHeading, Vector3 magnetometerReading, DateTimeOffset timestamp, double trueHeading)
        {
            var compassSensorReading = new SettableCompassSensorReading();
            compassSensorReading.SetHeadingAccuracy(headingAccuracy);
            compassSensorReading.SetMagneticHeading(magneticHeading);
            compassSensorReading.SetMagnetometerReading(magnetometerReading);
            compassSensorReading.SetTimestamp(timestamp);
            compassSensorReading.SetTrueHeading(trueHeading);

            CurrentValue = compassSensorReading;

            var handler = CurrentValueChanged;
            if (handler != null)
                handler(null, new SensorReadingEventArgs<CompassSensorReading>() { SensorReading = CurrentValue });
        }
        public void ChangeCurrentValue(double headingAccuracy, double magneticHeading, Vector3 magnetometerReading, DateTimeOffset timestamp, double trueHeading)
        {
            var compassSensorReading = new SettableCompassSensorReading();

            compassSensorReading.SetHeadingAccuracy(headingAccuracy);
            compassSensorReading.SetMagneticHeading(magneticHeading);
            compassSensorReading.SetMagnetometerReading(magnetometerReading);
            compassSensorReading.SetTimestamp(timestamp);
            compassSensorReading.SetTrueHeading(trueHeading);

            CurrentValue = compassSensorReading;

            var handler = CurrentValueChanged;

            if (handler != null)
            {
                handler(null, new SensorReadingEventArgs <CompassSensorReading>()
                {
                    SensorReading = CurrentValue
                });
            }
        }