別のユーザー コントロールに表示している [保存] ボタンと [キャンセル] ボタンのあるユーザー コントロールがあります。ユーザーが [保存] をクリックすると、内部ユーザー コントロールに標準機能を実行させたいのですが、親コントロールにもいくつかのことを実行させたいと考えています。これを処理する最良の方法は何ですか?
2 に答える
最善のアプローチは、「外部」コントロールで処理できるカスタム保存イベントを発生させることです。
http://www.codeproject.com/Articles/8797/Mastering-Page-UserControl-Communication#4.3
このイベントアプローチの利点は、UserControlsが再利用可能なままであるということです。このイベントを処理しない場合でも、他のページ(またはUserControls)でUserControlAを使用できます。何が必要で何をすべきかを決定するのはコントローラーの一部です。
原則として、UserControlsは特定のコントローラーに依存しないようにする必要があります。依存しないと、ハードリンクされて再利用できなくなります。それは厄介なエラーの良い情報源にもなります。UserControlは、他のネストされた(User-)コントロールのコントローラーである可能性がありますが、ページ自体のコントローラーではありません。
コミュニケーションの概要:
- ページ->UserControl->パブリックプロパティとメソッド
- UserControl->ページ->イベント
- UserControl-> UserControl->コントローラー-UserControlはページロールを採用します(上記のユースケースを参照)
バブル イベントは、 http://msdn.microsoft.com/en-us/library/aa719644( v=vs.71 ).aspx
ユーザー コントロールでバブル イベントを発生させることができます。これは、処理されるまで、各ユーザー コントロールの先祖に再帰的に渡されます。