//--------------------------------------------------------------------- private Dictionary <string, Action> _getActionsSettingsPropertyNames(ISettingsProperties settingsProperties) { Dictionary <string, Action> actionSettingsPropertyNames; if (!_actionsSettingsPropertyNames.TryGetValue(settingsProperties, out actionSettingsPropertyNames)) { actionSettingsPropertyNames = new Dictionary <string, Action>(); _actionsSettingsPropertyNames.Add(settingsProperties, actionSettingsPropertyNames); _subscribeSettingsPropertiesAllEvents(settingsProperties, true); } return(actionSettingsPropertyNames); }
//--------------------------------------------------------------------- private void _subscribeSettingsPropertiesAllEvents(ISettingsProperties settingsProperties, bool addEvents) { if (settingsProperties != null) { if (addEvents) { settingsProperties.PropertyChanged += _settingsPropertiesOnPropertyChanged; } else { settingsProperties.PropertyChanged -= _settingsPropertiesOnPropertyChanged; } } }
protected void AddActionsSettingsProperties(ISettingsProperties settingsProperties, params Tuple <string, Action>[] actionsPropertyNames) { if (settingsProperties == null) { throw new ArgumentNullException(nameof(settingsProperties)); } if (actionsPropertyNames == null) { throw new ArgumentNullException(nameof(actionsPropertyNames)); } var actionSettingsPropertyNames = _getActionsSettingsPropertyNames(settingsProperties); foreach (var actionsPropertyName in actionsPropertyNames.Where(actionsPropertyName => !string.IsNullOrWhiteSpace(actionsPropertyName.Item1) && actionsPropertyName.Item2 != null)) { actionSettingsPropertyNames[actionsPropertyName.Item1] = actionsPropertyName.Item2; } }
protected void AddActionSettingsProperties(ISettingsProperties settingsProperties, string propertyName, Action action) { if (settingsProperties == null) { throw new ArgumentNullException(nameof(settingsProperties)); } if (string.IsNullOrWhiteSpace(propertyName)) { throw new ArgumentNullException(nameof(propertyName)); } if (action == null) { throw new ArgumentNullException(nameof(action)); } var actionSettingsPropertyNames = _getActionsSettingsPropertyNames(settingsProperties); actionSettingsPropertyNames[propertyName] = action; }