うまくいけば、この画像はここで読めます...

これは、MVP を実装する私の最初のプロジェクトです。私は3つのクラスを持っています。、 という適切な名前FrmMainのメイン フォームにはFrmMainPresenter、MainOpsいくつかの追加要素があります。
FrmMainでは への参照がありFrmMainPresenter、 ではFrmMainPresenterへの参照がありFrmMainます。
上のイベントは、上FrmMainのメソッドを呼び出しますFrmMainPresenter。
FrmMainPresenter参照からコントロールを取得し、およびを受け入れるメソッドを呼び出すことになっています。FrmMainMainOpsGridControlCollection<Control>
ただし、 内の適切なグリッドとコレクションにアクセスしようとすると、それらのコントロールの定義が含まれFrmMainPresenterてFrmMainいないことがわかります。
コードFrmMain:
private void genericCheckbox_CheckedChanged(object sender, EventArgs e)
{
_presenter.CheckBoxCheckedChanged();
}
コードFrmMainPresenter:
public void CheckBoxCheckedChanged()
{
if (!_view.SuppressCheckedChanged)
_mo.UpdateFilter(_view.gdcSVNDefaultView, _view.Controls);
}
何が間違っているのかわかりません。これが正しいとは思いませんでしたが、私の唯一の推測では、Designer ファイルで必要なコントロールを public に設定することでしたが、うまくいきませんでした。同じ結果です。
問題は、フォームのインターフェイスに gridview / controls コレクションが定義されておらず、プレゼンター クラスがそれを認識できないためだと思います。しかし、それでも、フォームに実装できるように、インターフェイスで適切に定義する方法がわかりません。