예제 #1
0
        private bool TryParseText(string valueText, out double numericValue)
        {
            PhysicalValue physicalValueResult;

            if (DisplayUnit.HasValue)
            {
                if (!valueText.Contains(DisplayUnit.Value.ToString()))
                {
                    valueText = valueText + " " + DisplayUnit.Value;
                }
                PhysicalValue.TryParse(valueText, DisplayUnit.Value, LastPrefix, out physicalValueResult);

                if (!double.IsNaN(physicalValueResult.Value))
                {
                    numericValue = physicalValueResult.ConvertTo(Unit).Value;
                }
                else
                {
                    numericValue = Value;
                }
            }
            else
            {
                if (!PhysicalValue.TryParse(valueText, Unit, LastPrefix, out physicalValueResult))
                {
                    physicalValueResult.Value = Double.NaN;
                }

                numericValue = double.IsNaN(physicalValueResult.Value) ? Value : physicalValueResult.Value;
            }

            return(!double.IsNaN(physicalValueResult.Value));
        }
예제 #2
0
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            PhysicalValue result;

            if (PhysicalValue.TryParse(value.ToString(), DefaultUnit, out result))
            {
                return(result.Value);
            }
            else
            {
                return(double.NaN);
            }
        }