Memory leaks 是否需要取消注册所有UI元素的事件以减少内存泄漏?

Memory leaks 是否需要取消注册所有UI元素的事件以减少内存泄漏?,memory-leaks,windows-phone-7,Memory Leaks,Windows Phone 7,我读 对注销事件有点困惑。意味着我有按钮并注册了click事件,无论它是否需要在page unload事件中显式地取消注册click事件。 因为大多数UI元素都将为某些事件注册 在model和viewmodel中,我可以显式取消注册事件(如loadCompleted) 是否需要取消注册所有UI元素的事件以减少内存泄漏 您只需要注销将视图保留在内存中的EventHandler 因此,如果保留ViewModel对象(例如,将其传递到另一个视图),视图和ViewModel之间的任何绑定都可能会将视图保

我读 对注销事件有点困惑。意味着我有按钮并注册了click事件,无论它是否需要在page unload事件中显式地取消注册click事件。 因为大多数UI元素都将为某些事件注册

在model和viewmodel中,我可以显式取消注册事件(如loadCompleted)


是否需要取消注册所有UI元素的事件以减少内存泄漏

您只需要注销将视图保留在内存中的EventHandler

因此,如果保留ViewModel对象(例如,将其传递到另一个视图),视图和ViewModel之间的任何绑定都可能会将视图保留在内存中(可访问)。如果不保留ViewModel,则不会出现这种情况。(但请务必确保不保留对ViewModel的引用)


@Erno:是否需要取消注册事件以减少所有UI元素的内存泄漏?我读了那篇文章,但没有使用。请确保其reuqired明确注销按钮的单击事件。?如果单击处理程序位于视图的代码后面;没有问题,您不需要注销。如果使用绑定,例如通过将按钮的Command属性绑定到ViewModel,则可能需要取消注册此绑定。