private PropertySetting CreateSetting(string name, string propertyName) { PropertySetting _propertySetting = new PropertySetting(name, m_form, propertyName); _propertySetting.ValueSaving += ValueSaving; return(_propertySetting); }
public FormSettings(Form form, string settingsKey) : base(settingsKey) { if (form == null) { throw new ArgumentNullException("form"); } m_form = form; UseLocation = true; UseSize = true; UseWindowState = true; SaveOnClose = true; // settings m_topSetting = CreateSetting("Window.Top", "Top"); m_leftSetting = CreateSetting("Window.Left", "Left"); m_widthSetting = CreateSetting("Window.Width", "Width"); m_heightSetting = CreateSetting("Window.Height", "Height"); m_stateSetting = CreateSetting("Window.WindowState", "WindowState"); // subscribe to parent form's events m_form.Load += FormLoad; m_form.Closing += FormClosing; }
public void AddAll(object obj) { if (obj == null) { throw new ArgumentNullException("obj"); } // field settings FieldInfo[] _fieldInfos = obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); foreach (FieldInfo fieldInfo in _fieldInfos) { FieldSettingAttribute[] _settingAttributes = (FieldSettingAttribute[])fieldInfo.GetCustomAttributes(typeof(FieldSettingAttribute), true); if (_settingAttributes.Length <= 0) { continue; } FieldSettingAttribute _settingAttribute = _settingAttributes[0]; string _settingName = _settingAttribute.Name; if (string.IsNullOrEmpty(_settingName)) { _settingName = fieldInfo.Name; } object _defaultValue = _settingAttribute.DefaultValue; FieldSetting _fieldSetting = new FieldSetting(_settingName, obj, fieldInfo.Name, _defaultValue); Add(_fieldSetting); } // property settings PropertyInfo[] _propertyInfos = obj.GetType().GetProperties( BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); foreach (PropertyInfo _propertyInfo in _propertyInfos) { PropertySettingAttribute[] _settingAttributes = (PropertySettingAttribute[])_propertyInfo.GetCustomAttributes(typeof(PropertySettingAttribute), true); if (_settingAttributes.Length <= 0) { continue; } PropertySettingAttribute _settingAttribute = _settingAttributes[0]; string _settingName = _settingAttribute.Name; if (string.IsNullOrEmpty(_settingName)) { _settingName = _propertyInfo.Name; } object _defaultValue = _settingAttribute.DefaultValue; PropertySetting _propertySetting = new PropertySetting(_settingName, obj, _propertyInfo.Name, _defaultValue); Add(_propertySetting); } }
private void Collect(DependencyObject currentObject, bool recursive) { foreach (object _child in LogicalTreeHelper.GetChildren(currentObject)) { DependencyObject _dependencyObject = _child as DependencyObject; if (_dependencyObject == null) { continue; } FrameworkElement _frameworkElement = _child as FrameworkElement; if (_frameworkElement != null) { bool _add = m_elementType.IsAssignableFrom(_frameworkElement.GetType()); if (_add && string.IsNullOrEmpty(_frameworkElement.Name)) { _add = false; Debug.WriteLine("PropertySettingCollector: missing name for framework element " + _frameworkElement); } if (_add && !OnCollectingSetting(_frameworkElement)) { _add = false; } if (_add) { string _settingName = string.Concat(_frameworkElement.Name, ".", m_propertyName); PropertySetting _propertySetting = new PropertySetting(_settingName, _frameworkElement, m_propertyName); _propertySetting.DefaultValue = _propertySetting.Value; ApplicationSettings.Settings.Add(_propertySetting); } } if (recursive) { Collect(_dependencyObject, true); } } }
private void Collect(Control.ControlCollection children, bool recursive) { foreach (Control _control in children) { bool _add = _control.GetType().IsAssignableFrom(m_elementType); string _controlId = null; if (_add) { _controlId = GetControlId(_control); if (string.IsNullOrEmpty(_controlId)) { _add = false; Debug.WriteLine("PropertySettingCollector: missing id for control " + _control); } } if (_add && !OnCollectingSetting(_control)) { _add = false; } if (_add) { string _settingName = string.Concat(_controlId, ".", m_propertyName); PropertySetting _propertySetting = new PropertySetting(_settingName, _control, m_propertyName); _propertySetting.DefaultValue = _propertySetting.Value; ApplicationSettings.Settings.Add(_propertySetting); } if (recursive && _control.Controls.Count > 0) { Collect(_control.Controls, true); } } }