in src/BehaviorsSDKManaged/Microsoft.Xaml.Interactions/Core/TypeConverterHelper.cs [25:65]
public static Object Convert(string value, string destinationTypeFullName)
{
if (string.IsNullOrEmpty(destinationTypeFullName))
{
throw new ArgumentNullException(nameof(destinationTypeFullName));
}
string scope = TypeConverterHelper.GetScope(destinationTypeFullName);
// Value types in the "System" namespace must be special cased due to a bug in the xaml compiler
if (string.Equals(scope, "System", StringComparison.Ordinal))
{
if (string.Equals(destinationTypeFullName, (typeof(string).FullName), StringComparison.Ordinal))
{
return value;
}
else if (string.Equals(destinationTypeFullName, typeof(bool).FullName, StringComparison.Ordinal))
{
return bool.Parse(value);
}
else if (string.Equals(destinationTypeFullName, typeof(int).FullName, StringComparison.Ordinal))
{
return int.Parse(value, CultureInfo.InvariantCulture);
}
else if (string.Equals(destinationTypeFullName, typeof(double).FullName, StringComparison.Ordinal))
{
return double.Parse(value, CultureInfo.InvariantCulture);
}
}
string type = TypeConverterHelper.GetType(destinationTypeFullName);
string contentControlXaml = string.Format(CultureInfo.InvariantCulture, TypeConverterHelper.ContentControlFormatString, scope, type, value);
ContentControl contentControl = XamlReader.Load(contentControlXaml) as ContentControl;
if (contentControl != null)
{
return contentControl.Content;
}
return null;
}