1

プログラムに Async Progress Pattern を実装しようとしています。しかし、私はかなり恥ずかしい点で立ち往生しています: イベントハンドラを割り当てることができません.

私のコードは次のようになります: イベントは追加のウィンドウで処理されます:

public ProgressReportViewModel(IWindowManager windManager, Progress<ProgressReport> progressReport)
{
    this.ProgressReport = progressReport;
    this.ProgressReport.ProgressChanged += HandleProgressChanged;
}

    public void HandleProgressChanged(ProgressReport report)
    {

// 何かをする。}

コンパイルしようとすると、「HandleProgressChanged」のオーバーロードがデリゲート「System.EventHandler」に一致しません

なぜこのエラーが発生するのですか? イベント ハンドラーの理解に問題がありますか?

4

1 に答える 1

2

イベントには、次の署名を持つProgress<T>.ProgressChangedタイプ のデリゲートがあります。EventHandler<T>

public delegate void EventHandler<TEventArgs>(
    Object sender,
    TEventArgs e
)

コードを次のように変更します。

public void HandleProgressChanged(Object sender, ProgressReport report)
{
    // do stuff
}
于 2013-08-01T12:34:10.993 に答える