/// <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; }
/// <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; }