private static DependencyProperty RegisterServiceProperty(string name, Type type) { var defaultValue = RuntimeUtils.CreateDefaultValue(type); var propertyMetadata = new PropertyMetadata(defaultValue, OnServicePropertyValueChanged); return(DependencyPropertyManager.RegisterAttached(name, type, typeof(DependencyPropertyManager), propertyMetadata)); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { var targetType = typeof(TTo); if (value == null) { return(RuntimeUtils.CreateDefaultValue(targetType)); } var sourceType = value.GetType(); return(PrimitiveConverterFactory.GetConverter(sourceType, targetType).Convert(value)); }
public override object ProvideValue(IServiceProvider serviceProvider) { object target; object targetProperty; bool reflected; GetTarget(serviceProvider, out target, out targetProperty, out reflected); var targetProxy = target as ISkinResourceKey; if (targetProxy != null) { var propertyName = (targetProperty as PropertyInfo)?.Name; if (propertyName == null) { return(null); } targetProxy.SetResourceKey(propertyName, Key); } var propertyInfo = targetProperty as PropertyInfo; if (propertyInfo != null) { return(RuntimeUtils.CreateDefaultValue(propertyInfo.PropertyType)); } var dependencyProperty = targetProperty as DependencyProperty; if (dependencyProperty != null) { return(RuntimeUtils.CreateDefaultValue(dependencyProperty.GetPropertyType())); } return(null); }
protected object DefaultPropertyValue(IServiceProvider serviceProvider) { object target; object targetProperty; bool reflected; GetTarget(serviceProvider, out target, out targetProperty, out reflected); var propertyInfo = targetProperty as PropertyInfo; if (propertyInfo != null) { return(RuntimeUtils.CreateDefaultValue(propertyInfo.PropertyType)); } var dependencyProperty = targetProperty as DependencyProperty; if (dependencyProperty != null) { return(RuntimeUtils.CreateDefaultValue(dependencyProperty.GetPropertyType())); } return(null); }
protected override object ConvertCore(object value, Type targetType, object parameter, CultureInfo culture) { return(targetType.IsValueType && (value == null || value.IsDependencyPropertyUnsetValue() || value.IsUnset()) ? RuntimeUtils.CreateDefaultValue(targetType) : value); }
public static object CreateDefaultValue(this Type type) { return(RuntimeUtils.CreateDefaultValue(type)); }
private object GetDefaultValue(object targetProperty) { var propertyType = GetPropertyType(targetProperty); return(propertyType == null ? null : RuntimeUtils.CreateDefaultValue(propertyType)); }