Exemple #1
0
            public override void SetValue(object component, object value)
            {
                DesignObjectWrapper instance = (DesignObjectWrapper)component;

                if (!instance.IsUndoRedoInProgress)
                {
                    if (null != this.descriptorData.PropertyValidator)
                    {
                        string error = null;
                        ValidationException exception = null;
                        try
                        {
                            List <string> errors = new List <string>();
                            if (!this.descriptorData.PropertyValidator(instance, value, errors))
                            {
                                StringBuilder sb = new StringBuilder();
                                errors.ForEach((errMessage) =>
                                {
                                    sb.AppendLine(errMessage);
                                });
                                error     = sb.ToString();
                                exception = new ValidationException(error);
                            }
                        }
                        catch (Exception err)
                        {
                            if (Fx.IsFatal(err))
                            {
                                throw FxTrace.Exception.AsError(err);
                            }
                            else
                            {
                                exception = new ValidationException(err.Message, err);
                            }
                        }

                        if (null != exception)
                        {
                            instance.ValidationErrors[this.Name] = exception.Message;
                            instance.RaisePropertyChangedEvent(this.validationErrorPropertyName);
                            instance.RaisePropertyChangedEvent(DesignObjectWrapper.HasErrorsProperty);
                            throw FxTrace.Exception.AsError(exception);
                        }
                        else if (null != instance.validationErrors && instance.validationErrors.ContainsKey(this.Name))
                        {
                            instance.validationErrors.Remove(this.Name);
                            if (0 == instance.validationErrors.Count)
                            {
                                instance.validationErrors = null;
                            }
                            instance.RaisePropertyChangedEvent(this.validationErrorPropertyName);
                            instance.RaisePropertyChangedEvent(DesignObjectWrapper.HasErrorsProperty);
                        }
                    }

                    this.descriptorData.PropertySetter(instance, value);

                    (instance.Content as IModelTreeItem).ModelTreeManager.AddToCurrentEditingScope(new FakeModelNotifyPropertyChange(instance.Content as IModelTreeItem, this.Name));
                }
            }
Exemple #2
0
            public override void ResetValue(object component)
            {
                DesignObjectWrapper instance = (DesignObjectWrapper)component;

                this.descriptorData.PropertySetter(instance, null);
            }
Exemple #3
0
            public override object GetValue(object component)
            {
                DesignObjectWrapper instance = (DesignObjectWrapper)component;

                return(!instance.isDisposed ? this.descriptorData.PropertyGetter(instance) : null);
            }