Beispiel #1
0
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string number;

            // Return the text key only in design mode. Nothing better to do for now.
            if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
            {
                if (decimals > -1)
                {
                    number = Tx.Number(0, decimals);
                }
                else
                {
                    number = Tx.Number(0);
                }
            }
            else
            {
                // values[0] is the Dummy binding, don't use it

                // Read the number value from binding number two.
                if (values[1] == DependencyProperty.UnsetValue)
                {
                    return(DependencyProperty.UnsetValue);
                }
                else if (values[1] is byte || values[1] is sbyte ||
                         values[1] is ushort || values[1] is short ||
                         values[1] is uint || values[1] is int ||
                         values[1] is long)
                {
                    long l = System.Convert.ToInt64(values[1]);
                    number = Tx.Number(l);
                }
                else
                {
                    decimal d = System.Convert.ToDecimal(values[1]);
                    if (decimals > -1)
                    {
                        number = Tx.Number(d, decimals);
                    }
                    else
                    {
                        number = Tx.Number(d);
                    }
                }
            }

            if (!string.IsNullOrEmpty(unit))
            {
                number = Tx.NumberUnit(number, unit);
            }

            return(number);
        }
Beispiel #2
0
        public string GetValueString()
        {
            switch (Value)
            {
            case var value when value is TextValueDto val:
                return(val.Value);

            case var value when value is TranslatedTextValueDto val:
                return(Tx.T($"SystemInformation:Labels.{val.TranslationKey}"));

            case var value when value is NumberValueDto val:
                return(Tx.Number(val.Value));

            case var value when value is DataSizeValueDto val:
                return(Tx.DataSize(val.Value));

            case var value when value is ProgressValueDto val:
                return($"{val.Value} / {val.Maximum}");

            case var value when value is CultureValueDto val:
                var culture = CultureInfo.GetCultureInfo(val.Value);
                return($"{culture.DisplayName} ({culture.TwoLetterISOLanguageName})");

            case var value when value is DateTimeValueDto val:
                return(Tx.Time(val.Value.LocalDateTime, TxTime.YearMonthLong | TxTime.HourMinuteSecond));

            case var value when value is BoolValueDto val:
                return(val.ToString());

            case var value when value is HeaderValueDto val:
                return(string.Empty);

            default:
                return(string.Empty);
            }
        }