private static void OnServiceListChanged(DependencyObject sender, DependencyPropertyChangedEventArgs changeArgs) { var element = sender as FrameworkElement; var oldList = changeArgs.OldValue as UIServiceCollection; if (element != null) { if (oldList != null) { var oldProvider = GetServiceProvider(element); if (oldProvider != null) { oldProvider.Dispose(); } } // Create a service provider for the element. UIServiceProvider newProvider = null; var newList = changeArgs.NewValue as UIServiceCollection; if (newList != null) { newProvider = new UIServiceProvider(); newProvider.AttachToElement(element, newList); } SetServiceProvider(element, newProvider); } }
private static UIServiceProvider CreateServiceProvider(FrameworkElement element) { var serviceList = GetServiceList(element); if (serviceList == null) { return(null); } log.DebugFormat("Creating a new service provider for {0}", element); var serviceProvider = new UIServiceProvider(); SetServiceProvider(element, serviceProvider); serviceProvider.AttachToElement(element, serviceList); return(serviceProvider); }