/// <summary> /// Updates the type conversion text when one of the types involved changes. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">Arguments describing the event.</param> private static void OnTypeConversionValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { DemoContentControl window = sender as DemoContentControl; if (sender != null) { window.UpdateTypeConversionText(); } }
/// <summary> /// Updates the basic types text when the value in the basic types box changes. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">Arguments describing the event.</param> private static void OnBasicTypesValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { DemoContentControl window = sender as DemoContentControl; if (window != null) { string newValue = window.BasicTypesValue.Trim(); if (newValue.Length == 0) { window.UpdateBasicTypesText(null); } else if (stringRegex.IsMatch(newValue)) { window.UpdateBasicTypesText(SupportedTypes.String); } else if (newValue.ToUpperInvariant() == "TRUE") { window.UpdateBasicTypesText(SupportedTypes.Boolean); } else if (charRegex.Match(newValue).Success) { window.UpdateBasicTypesText(SupportedTypes.Character); } else if (newValue.ToUpperInvariant() == "FALSE") { window.UpdateBasicTypesText(SupportedTypes.Boolean); } else if (intRegex.IsMatch(newValue)) { int intValue; uint uintValue; long longValue; ulong ulongValue; if (int.TryParse(intNumbersRegex.Match(newValue).Value, out intValue)) { window.UpdateBasicTypesText(SupportedTypes.Integer); } else if (uint.TryParse(intNumbersRegex.Match(newValue).Value, out uintValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedInteger); } else if (long.TryParse(intNumbersRegex.Match(newValue).Value, out longValue)) { window.UpdateBasicTypesText(SupportedTypes.Long); } else if (ulong.TryParse(intNumbersRegex.Match(newValue).Value, out ulongValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedLong); } else { window.UpdateBasicTypesText(null); } } else if (uintRegex.IsMatch(newValue)) { uint uintValue; ulong ulongValue; if (uint.TryParse(intNumbersRegex.Match(newValue).Value, out uintValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedInteger); } else if (ulong.TryParse(intNumbersRegex.Match(newValue).Value, out ulongValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedLong); } else { window.UpdateBasicTypesText(null); } } else if (longRegex.IsMatch(newValue)) { long longValue; ulong ulongValue; if (long.TryParse(intNumbersRegex.Match(newValue).Value, out longValue)) { window.UpdateBasicTypesText(SupportedTypes.Long); } else if (ulong.TryParse(intNumbersRegex.Match(newValue).Value, out ulongValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedLong); } else { window.UpdateBasicTypesText(null); } } else if (ulongRegex.IsMatch(newValue)) { ulong ulongValue; if (ulong.TryParse(intNumbersRegex.Match(newValue).Value, out ulongValue)) { window.UpdateBasicTypesText(SupportedTypes.UnsignedLong); } else { window.UpdateBasicTypesText(null); } } else if (floatRegex.IsMatch(newValue)) { window.UpdateBasicTypesText(SupportedTypes.SingleFloat); } else if (doubleRegex.IsMatch(newValue)) { window.UpdateBasicTypesText(SupportedTypes.DoubleFloat); } else if (decimalRegex.IsMatch(newValue)) { window.UpdateBasicTypesText(SupportedTypes.DecimalFloat); } else { window.UpdateBasicTypesText(null); } } }