コード例 #1
0
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            IProvideValueTarget provideValue = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;

            if (provideValue == null)
            {
                return(this);
            }

            DependencyObject   target   = provideValue.TargetObject as DependencyObject;
            DependencyProperty property = provideValue.TargetProperty as DependencyProperty;

            // If not dependency object or dependency property, return this instance
            if (target == null || property == null)
            {
                return(this);
            }

            if (!ElementStateOperations.HasPropertyValue(target, property))
            {
                object defaultValue = PropertyValueConverter.ConvertFromString(target.GetType(), property, Default);
                ElementStateOperations.AddPropertyValue(target, property, defaultValue);
            }

            BindingBase binding = ElementStateOperations.CreateBinding(target, property);

            object startValue = binding.ProvideValue(serviceProvider);

            return(startValue);
        }
コード例 #2
0
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     if (ElementStateOperations.HasPropertyValue(Target, Property))
     {
         object propertyValue = ElementStateOperations.GetPropertyValue(Target, Property);
         return(propertyValue);
     }
     throw new ArgumentException(string.Format("The property {0}.{1} is not in state", Target, Property.Name));
 }