がありUserControl
、 のボタンがクリックされたことを親ページに通知する必要がありUserControl
ます。UserControl
でイベントを発生させ、それをメイン ページでキャッチするにはどうすればよいですか? を使ってみたところstatic
、多くの人からイベントに行くよう勧められました。
72142 次
3 に答える
88
イベント バブリングを確認してください -- http://msdn.microsoft.com/en-us/library/aa719644%28vs.71%29.aspx
例:
ユーザーコントロール
public event EventHandler StatusUpdated;
private void FunctionThatRaisesEvent()
{
//Null check makes sure the main page is attached to the event
if (this.StatusUpdated != null)
this.StatusUpdated(this, new EventArgs());
}
メインページ/フォーム
public void MyApp()
{
//USERCONTROL = your control with the StatusUpdated event
this.USERCONTROL.StatusUpdated += new EventHandler(MyEventHandlerFunction_StatusUpdated);
}
public void MyEventHandlerFunction_StatusUpdated(object sender, EventArgs e)
{
//your code here
}
于 2011-05-31T19:55:27.207 に答える
7
コントロールにイベントを追加するだけです:
public event EventHandler SomethingHappened;
親に通知したいときにそれを上げます:
if(SomethingHappened != null) SomethingHappened(this, new EventArgs);
カスタム EventArgs が必要な場合は、EventHandler<T>
代わりにT
から派生した型を試してくださいEventArgs
。
于 2011-05-31T19:56:51.807 に答える
1
または、より分離されたソリューションを探している場合は、ここでMVVM Light Messenger などのメッセンジャー パブリッシャー/サブスクライバー モデルを使用できます。
于 2011-05-31T20:05:31.003 に答える