我正在创建一些自定义 wp7 silverlight 自定义控件,这些控件在 OnApplyTemplate() 中的模板子项上注册一些事件。
我想我必须取消注册这些以防止内存泄漏。但当?我会尝试 unloaded 事件 - 这有效,但我有这个问题。场景:在 Page1 我有我的自定义控件。然后从 Page1 导航到 Page2 调用我的自定义控件的 Unloaded 事件。到目前为止,一切都很好。但是后来我导航回我的自定义控件的事件没有再次注册,所以使用该控件没有任何反应。
那么我是否应该正确注册和注销事件以确保一切都按预期工作并且我不能创建内存泄漏?
谢谢你的帮助!
编辑:
这是我的 OnApplyTemplate() 方法的示例:
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
_itemsContainer = GetTemplateChild("PART_Items") as ItemsControl;
if (_itemsContainer != null)
{
// When to detach this event for correctly object lifetime?
_itemsContainer.Tap += ItemsContainer_Tap;
}
}