kanchirk
kanchirk

Reputation: 912

How to Detach a Behavior from an UIElement in Code Behind for Silverlight?

In Silverlight 3.0 I have added a custom behavior to some UIElement in Code Behind.

I wanted to remove the Behavior later in runtime.

What is the C# syntax to Detach an already added Behavior from an UIElement?

Upvotes: 5

Views: 2952

Answers (1)

Dan Auclair
Dan Auclair

Reputation: 3617

I am guessing you are talking about a behavior deriving from the Behavior<T> class in the Blend SDK...

Do you still have a reference to the behavior from when you attached it?

MyCustomBehavior myBehavior = new MyCustomBehavior();
myBehavior.Attach(myElement);
...
myBehavior.Detach();

EDIT

If you no longer have a reference to the instance of the behavior when you want to detach it you can do something like this to detach all behaviors on a DependencyObject:

foreach (var behavior in Interaction.GetBehaviors(myElement))
{
    behavior.Detach();
}

Upvotes: 8

Related Questions