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); }
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); } }