2

イベントをリッスンしているユーザー コントロールがあります。

public partial class ObserverControl : UserControl
{
    public ObserverControl()
    {
        InitializeComponents();

        Observatory.DataUpdated += OnDataUpdate;
    }

    private void OnDataUpdated(object sender, EventArgs e)
    {
        // Process new data
    }
}

この UserControl が閉じられたときに、イベントの購読を解除するにはどうすればよいですか? 現在、Observatory クラスはまだ ObserverControl に更新を送信しようとしています。

IDisposable の使用を検討しましたが、それがどのように機能するかは正確にはわかりません (特にDispose(bool disposing)、デザイナー コードでメソッドが既にオーバーライドされているため)。

4

1 に答える 1

2

生成されたファイルから dispose メソッドを移動して追加します

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);

            Observatory.DataUpdated -= OnDataUpdate;

        }
于 2012-05-11T16:21:10.260 に答える