通常、私は行きます:
bgwExportGrid.RunWorkerCompleted += ReportManager.RunWorkerCompleted;
ReportManager クラスは、使用するイベント ハンドラーを含む静的クラスです。
public static class ReportManager
{
public static void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
...
}
}
BackgroundWorker を作成したので、ReportManager で定義されているように RunWorkerCompleted イベントをアタッチします。ただし、ReportManager は参照できません。そうしないと、循環参照が発生するため、リフレクションが必要になります。
どんな助けでも大歓迎です。
私は以下を見てきましたが、あまり遠くには行きませんでした:
Assembly assem = Utils.GetAssembly("WinUI.Reporting.Common.dll");
Type reportManagerType = assem.GetModule("WinUI.Reporting.Common.dll").GetType("WinUI.Reporting.Common.ReportManager");
EventInfo evWorkerCompleted = reportManagerType.GetEvent("RunWorkerCompleted");
Type tDelegate = evWorkerCompleted.EventHandlerType;