protected override void OnContentChanged(object oldContent, object newContent) { try { if (oldContent != null) { if (oldContent is IAliasAnswerer) { __register.unregisterComponent((IAliasAnswerer)oldContent); } else if (oldContent is IAliasesContainer) { IAliasesContainer cont = (IAliasesContainer)oldContent; foreach (IAliasAnswerer ans in cont.getAllComponents()) { __register.unregisterComponent(ans); } } } } catch (Exception e) { } try { if (newContent != null) { if (newContent is IAliasAnswerer) { __register.registerComponent((IAliasAnswerer)newContent); } else if (newContent is IAliasesContainer) { IAliasesContainer cont = (IAliasesContainer)newContent; foreach (IAliasAnswerer ans in cont.getAllComponents()) { __register.registerComponent(ans); } } } } catch (Exception e) { } base.OnContentChanged(oldContent, newContent); }
public static void aliasChanged(DependencyObject o, DependencyPropertyChangedEventArgs args) { try { FrameworkElement element = (FrameworkElement)o; IAliasesContainer parent = (IAliasesContainer)element.Parent; IAliasAnswerer thisAnswerer = (IAliasAnswerer)o; parent.notifyAliasRemove((string)args.OldValue, thisAnswerer); parent.notifyAliasAdd((string)args.NewValue, thisAnswerer); } catch (Exception ex) { } }