示例#1
0
        /// <summary>
        /// オブジェクトの終了処理を行います。
        /// </summary>
        public void Terminate()
        {
            if (this.terminated)
            {
                return;
            }

            RemoveMe        = true;
            this.terminated = true;

            Terminated.SafeRaiseEvent(this, EventArgs.Empty);
            OnTerminate();

            // 子要素も終了処理を行います。
            foreach (var child in Children)
            {
                child.Terminate();
            }
            Children.Clear();

            // すべてのバインディングとアニメーションを開放します。
            if (Scenario != null)
            {
                Scenario.Stop();
                Scenario.Children.Clear();
            }

            // 一応開放
            Initialized = null;
            Terminated  = null;
            EnterFrame  = null;
        }
示例#2
0
        /// <summary>
        /// オブジェクトの終了処理を行います。
        /// </summary>
        public void Terminate()
        {
            if (this.terminated)
            {
                return;
            }

            RemoveMe        = true;
            this.terminated = true;

            Terminated.SafeRaiseEvent(this, EventArgs.Empty);
            OnTerminate();

            // 子要素も終了処理を行います。
            foreach (var child in Children)
            {
                child.Terminate();
            }
            Children.Clear();

            if (ModelGroup != null)
            {
                ModelGroup.Children.Clear();
            }

            var behaviors = Interaction.GetBehaviors(this);

            if (behaviors != null)
            {
                behaviors.Detach();

                BindingOperations.ClearAllBindings(behaviors);
                Interaction.ResetBehaviours(this);
            }

            // すべてのバインディングとアニメーションを開放します。
            if (Scenario != null)
            {
                Scenario.Stop();
                Scenario.Children.Clear();

                BindingOperations.ClearAllBindings(Scenario);
                Scenario = null;
            }

            BindingOperations.ClearAllBindings(this);

            // 一応開放
            Initialized = null;
            Terminated  = null;
            EnterFrame  = null;
        }