我有一个简单的用户控件,其中包含以下内容:

<Grid x:Name="LayoutRoot">

  <Button x:Name="btnOpenGenericPage" Click="btnOpenGenericPage_Click" Content="Open"/>

</Grid>


我了解单击事件处理程序是如何创建和连接的->在.g.cs类的InitializeComponent方法上,将调用System.Windows.Application.LoadComponent方法并完成所有操作。

但是,一旦从VisualTree中删除了此控件,我似乎就无法理解是否正在取消该事件。如果是,谁来照顾这个?在任何情况下都不会取消活动的连线吗?有人可以说明这个问题吗?

提前谢谢了,
布鲁诺。

最佳答案

它不会自行断开连接。您必须自己做:-

btnOpenGenericPage.click -= btnOpenGenericPage_Click


不仅如此,您还需要确保btOpenGenericPage已发布,您需要:-

btnOpenGenericPage = null;


当然,如果将Usercontrol所在的btnOpenGenericPage本身从树中删除,以使其变得易于垃圾收集,那么您通常不需要执行任何操作。

关于c# - 在Silverlight中,如何取消在xaml中声明的事件处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3576988/

10-11 00:47