3

usercontrolのあるウィンドウが閉じられる場合は、usercontrolのメソッドを呼び出す必要があります。つまり、usercontrolが破棄されたときだけです。それ、どうやったら出来るの?

4

3 に答える 3

3

ガベージコレクターがいつ収集するかを知りたい場合は、次のようにUserControl使用します。

    ~UserControl1()
    {
        //...
    }

UserControlが親からアンロードされるタイミングを知りたい場合はUnloaded、userControlでイベントを使用してください

注:とは異なり、WindowUserControl閉じることはできません。

于 2012-10-26T11:41:56.860 に答える
0

contolsにはClosing/Closedイベントがないため、Disposeをオーバーライドするほど単純ではありません。状況によっては、Disposeが呼び出されない場合があります。

コントロールのWndProcをオーバーライドして、WM_CLOSEイベントをキャッチすることができます。

于 2012-10-26T11:48:14.757 に答える
-1

他の人のための将来の参照のために。

メインウィンドウによってロードされたユーザーコントロールを次のように破棄しました。

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

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

Unloadedどのビューでも利用できるイベントです。

于 2015-08-27T12:44:39.257 に答える