知道用户控件处理的事件?

时间:2012-10-26 11:30:15

标签: c# wpf

如果一个带有usercontrol的窗口被关闭,那么我应该在usercontrol中调用一个方法,即除了处理usercontrol之外什么都没有。我该怎么做?

3 个答案:

答案 0 :(得分:1)

如果您想知道垃圾收集器何时收集UserControl,请使用此:

    ~UserControl1()
    {
        //...
    }

如果您想知道何时从其父级卸载UserControl,请在userControl上使用Unloaded事件

注意:与Window不同,UserControl无法关闭。

答案 1 :(得分:0)

由于contols没有Closing / Closed事件,所以它不像重写Dispose那么简单。在某些情况下可能不会调用处理。

您可以覆盖控件的WndProc并捕获WM_CLOSE事件。

答案 2 :(得分:-1)

供将来参考。

我处理了我的主窗口加载的用户控件,如下所示:

<UserControl x:Class="MyApp.Class" ... Unloaded="UserControl_Unloaded"></UserControl>

private void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
    ((MyVM)this.DataContext).Dispose();
}

Unloaded是任何视图中可用的事件。