private static void OnCollectedSettingChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { FrameworkElement _frameworkElement = dependencyObject as FrameworkElement; if (_frameworkElement == null) { Debug.WriteLine("FrameworkElementSettings: invalid framework element"); return; } DependencyProperty _dependencyProperty = e.NewValue as DependencyProperty; if (_dependencyProperty == null) { Debug.WriteLine("FrameworkElementSettings: missing dependency property"); return; } // search the framework element settings FrameworkElementSettings _frameworkElementSettings = _frameworkElement.ReadLocalValue(DependencyPropertySetting.ApplicationSettingsProperty) as FrameworkElementSettings; if (_frameworkElementSettings == null) { Debug.WriteLine("FrameworkElementSettings: missing framework element settings in element " + _frameworkElement); return; } DependencyPropertySettingCollector _collector = new DependencyPropertySettingCollector(_frameworkElement, _dependencyProperty); _frameworkElementSettings.SettingCollectors.Add(_collector); }
private static void OnFrameworkElementSettingsChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { FrameworkElement _frameworkElement = dependencyObject as FrameworkElement; if (_frameworkElement == null) { Debug.WriteLine("FrameworkElementSettings: invalid framework element"); return; } if (_frameworkElement.GetValue(DependencyPropertySetting.ApplicationSettingsProperty) != null) { return; // framework-element contains already an application setting } string _settingsKey = e.NewValue as string; if (string.IsNullOrEmpty(_settingsKey)) { Debug.WriteLine("FrameworkElementSettings: missing framework element settings key"); return; } // create and attach the application settings to the framework-element FrameworkElementSettings _frameworkElementSettings = new FrameworkElementSettings(_frameworkElement, _settingsKey); _frameworkElement.SetValue(DependencyPropertySetting.ApplicationSettingsProperty, _frameworkElementSettings); }