現在、サブスクライブしたいクラスに直接アクセスできるように実装していますが、直接アクセスできないクラスがある場合はどうなりますか? つまり、X がトリガーし、Y がサブスクライブするイベント。静的イベントを使用せずにこれを行うことは可能ですか? たとえば、2 つのウィンドウがあり、一方のウィンドウで 1 つのことが発生し、2 つ目のウィンドウで何かをトリガーしたい場合などです。
例:
Y (listens for event and DoSomething()) ---.
|----Event
X (triggers event when something changes) -'
現在のコード:
public static class MyEvents {
public delegate void FirstEventHandler();
}
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
SecondaryWindow secondWindow = new SecondaryWindow();
secondWindow.Show();
secondWindow.secondaryWindowEvent += new MyEvents.FirstEventHandler(callEvent);
}
protected void callEvent() {
MessageBox.Show("This is a MessageBox.");
}
}