void UpdateEditor(ISupportControl supportControl) {
     if (supportControl == null)
         return;
     bool isChanged = false;
     var memberType = GetMemberType() ?? typeof(object);
     bool editObjectChanged = (_parameter != null) && (_parameter.Type != memberType);
     if (_propertyEditor.CurrentObject != null) {
         if ((_parameter == null) || (editObjectChanged) || supportControl.Control == null) {
             var application = _getApplicationAction.Invoke();
             isChanged = true;
             _parameter = new MyParameter(memberType.Name, memberType);
             var paramList = new ParameterList { _parameter };
             ParametersObject parametersObject = ParametersObject.CreateBoundObject(paramList);
             DetailView detailView = parametersObject.CreateDetailView(application.CreateObjectSpace(), application, true);
             detailView.ViewEditMode = GetViewEditMode();
             _detailViewItems = ((PropertyEditor)detailView.Items[0]);
             _detailViewItems.CreateControl();
             _detailViewItems.ControlValueChanged += detailViewItems_ControlValueChanged;
         }
         _parameter.CurrentValue = _propertyEditor.PropertyValue;
     }
     if ((isChanged || (supportControl.Control == null)) && (_detailViewItems != null)) {
         _detailViewItems.Refresh();
         supportControl.Control = _findControl.Invoke(_detailViewItems);
     }
 }
Example #2
0
        void UpdateEditor(ISupportControl supportControl)
        {
            if (supportControl == null)
            {
                return;
            }
            bool isChanged         = false;
            var  memberType        = GetMemberType() ?? typeof(object);
            bool editObjectChanged = (_parameter != null) && (_parameter.Type != memberType);

            if (_propertyEditor.CurrentObject != null)
            {
                if ((_parameter == null) || (editObjectChanged) || supportControl.Control == null)
                {
                    var application = _getApplicationAction.Invoke();
                    isChanged  = true;
                    _parameter = new MyParameter(memberType.Name, memberType)
                    {
                        Visible = true
                    };
                    var paramList = new ParameterList {
                        _parameter
                    };
                    ParametersObject parametersObject = ParametersObject.CreateBoundObject(paramList);
                    DetailView       detailView       = parametersObject.CreateDetailView(application.CreateObjectSpace(), application, true);
                    detailView.ViewEditMode = GetViewEditMode();
                    _detailViewItems        = ((PropertyEditor)detailView.Items[0]);
                    _detailViewItems.CreateControl();
                    _detailViewItems.ControlValueChanged += detailViewItems_ControlValueChanged;
                }
                _parameter.CurrentValue = _propertyEditor.PropertyValue;
            }
            if ((isChanged || (supportControl.Control == null)) && (_detailViewItems != null))
            {
                _detailViewItems.Refresh();
                supportControl.Control = _findControl.Invoke(_detailViewItems);
            }
        }