Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 963
kanchirk Avatar asked Feb 25 '10 03:02

kanchirk


1 Answers

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();
}
like image 145
Dan Auclair Avatar answered Sep 18 '22 20:09

Dan Auclair