WinFormsでMVPを使用しようとしていますが、子ビュー間の調整をうまく処理する方法が混乱しています。子ビューの調整は、MVPでどのように最適に処理されますか?
たとえば、2つの子ビューを持つ親ビューがあります。 1つの子ビューのイベントは、2つ目の子ビューによって実行される必要があります。
親ビューでこれを直接制御する必要がありますか?私はMVPのパターンをバイパスしているようです。
または、子ビューがコンストラクタパラメータとして互いに関係する必要がありますか?その場合、最初の子ビューでイベントが発生すると、2番目の子ビューはそのイベントを受信して、プレゼンターに何かが発生したことを通知します。それから、発表者は、第2子ビューに何をすべきかを伝えるために、第1子ビュー(それについては知らない)からデータを取得する必要があります。私は何かを逃しているように感じるので、それは回旋しているようです。ここで
は事態のためのいくつかの擬似コードです:コンストラクタで他の子ビューを撮影
public class ParentView : UserControl, IParentView
{
private ChildViewOne childViewOne;
private ChildViewTwo childViewTwo;
private ParentViewPresenter presenter;
private RegisterEvents()
{
childViewOne.EventOccured += new EventHandler(HandleEvent);
}
private void HandleEvent()
{
childViewTwo.DoSomething();
}
}
"1つの子ビューのイベントは、2番目の子ビューでアクションを実行する必要があります。"何が起こるのか? – SwDevMan81
たとえば、childViewOneがタイムラインで、childViewTwoがビデオであるとします。タイムラインはTimeChangedイベントを公開し、ビデオの現在のフレームを変更することによってビデオはそのイベントに応答する必要があります。 – jameswelle