Пример #1
0
        static void OnManagedFrameworkElementUnloaded(object sender, RoutedEventArgs e)
        {
            // Call Unload() on the element's DataContext.

            FrameworkElement elem = sender as FrameworkElement;

            if (elem == null)
            {
                return;
            }

            IUnloadable unloadable = elem.DataContext as IUnloadable;

            if (unloadable == null)
            {
                return;
            }

            unloadable.Unload();

            // Set IsManaged to false for the element so that the Unloaded
            // event handler is detached, which ensures that it is not
            // referenced any longer.  That will allow the GC to collect it.
            SetIsManaged(elem, false);
        }
        public void Unload()
        {
            for (int i = 0; i < TotalComponents; ++i)
            {
                if (Components[i] is IUnloadable)
                {
                    IUnloadable CurrentUnloadable = Components[i] as IUnloadable;

                    CurrentUnloadable.Unload();

                    if (Components[i].IsComponentManager())
                    {
                        EngineComponentManager Submanager = Components[i] as EngineComponentManager;
                        Submanager.Unload();
                    }
                }
            }
        }
Пример #3
0
 public UnloadableItem(IUnloadable o, MemberPath memberPath)
 {
     UnloadableObject = o;
     MemberPath       = memberPath;
 }
 public UnloadableItem(IUnloadable o, MemberPath memberPath)
 {
     UnloadableObject = o;
     MemberPath = memberPath;
 }