トルネード

毛利のメモ書き

UWP 入門 イベントを作ろう

C#でイベントを作ってみよう

イベント宣言を作るのは簡単です。

// C#でのイベント
public delegate void Proc(object sender);

上記のような感じでイベント作成できます。 C++BuilderでいうところのTNotifyEventみたいな感じです。

// BCBの場合
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);

イベントを使うクラスを作成

上記で作成したProcをクラスイベントとして使えるようにします。

class C_Event_test
{
    public event Proc Notif1;//ここでProcをイベントとして登録
    public C_Event_test(Proc n1)
    {
        Notif1 = n1;
    }

    public void Run()
    {
        Notif1?.Invoke(null);//ここでイベントを使う。
    }
}

メインクラスで使う

作成したC_Event_testクラスを、メインクラスで使ってみます。下記のようなメソッドを作成する

private void Do_Ev1(object sender)
{
    t1.Text = "イベント発生";
}

ボタンクリック時に、クラスイベントでDo_Ev1()を呼び出します。

private void Button_Click(object sender, RoutedEventArgs e)
{
    ev1.Notif1 += Do_Ev1;//イベント発生時のDo_Ev1メソッドを登録
    ev1.Run();
}

f:id:mojeld:20180721174047g:plain