private static void FrameworkElementUnloaded(object sender, RoutedEventArgs e)
{
// BehaviorCollection doesn't call Detach, so we do this
var uie = sender as FrameworkElement;
if (uie == null)
{
return;
}
BehaviorCollection itemBehaviors = Interaction.GetBehaviors(uie);
foreach (var behavior in itemBehaviors) {
behavior.Detach();
}
uie.Loaded += FrameworkElementLoaded;
}