예제 #1
0
        public virtual void InitCloneControlProperties(Control currentControl, ControlPropertyDefineWrapper propertyDefineWrapper)
        {
            if (propertyDefineWrapper != null && !propertyDefineWrapper.UseTemplate)
            {
                if (propertyDefineWrapper.ControlPropertyDefineList != null)
                {
                    foreach (ControlPropertyDefine define in propertyDefineWrapper.ControlPropertyDefineList)
                    {
                        PropertyInfo piDest = TypePropertiesCacheQueue.Instance.GetPropertyInfo(currentControl.GetType(), define.PropertyName);
                        if (piDest != null)
                        {
                            if (string.IsNullOrEmpty(define.StringValue) == true || piDest.CanWrite == false)
                            {
                                continue;
                            }

                            if (piDest.PropertyType == typeof(Unit))
                            {
                                piDest.SetValue(currentControl, Unit.Parse(define.StringValue), null);
                            }
                            else
                            {
                                piDest.SetValue(currentControl, define.GetRealValue(), null);
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        public override void InitCloneControlProperties(Control currentControl, ControlPropertyDefineWrapper propertyDefineWrapper)
        {
            base.InitCloneControlProperties(currentControl, propertyDefineWrapper);

            if (!propertyDefineWrapper.UseTemplate)
            {
                var extendedSettings = propertyDefineWrapper.ExtendedSettings;

                if (extendedSettings.IsNotEmpty())
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(extendedSettings);

                    if (xmlDoc.ChildNodes.Count > 0)
                    {
                        SettleControlColumnsFromXmlNode(currentControl, xmlDoc.ChildNodes[0]);
                    }
                }
            }
        }