如何在Silverlight的代码后台中将行为从UI元素中分离?

5

在Silverlight 3.0中,我在Code Behind中为一些UIElement添加了自定义行为。

我希望在运行时稍后删除该行为。

如何使用C#语法从UIElement中分离已添加的行为?

1个回答

8

我猜你在谈论的是Blend SDK中Behavior<T>类派生出的一种行为...

你是否还保存着附加行为时的引用?

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

编辑

如果您在想要分离行为时不再拥有对行为实例的引用,可以执行以下操作以分离依赖对象上的所有行为:

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

Detach()之后,Attach()无法重新附加或将行为恢复到依赖对象。解决方案? - KMC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接