2009-03-03 7 views
-1

したがって、モデルビューコントローラパターンでC#/ Winformsアプリケーションを作成しています。私のビューコントローラは、複数のオブジェクトグループをインスタンス化する必要があります。オブジェクトグループは、モデルの要素とビューの要素です。たとえば、テキストボックスと、そのテキストボックスの後ろにあるモデル。C#モデルビューコントローラ

これを行う最善の方法は、すべてを何らかのコレクションに入れて、それらをキーと結びつけることですか?

答えて

0

WinFormsの代わりにWPFを使用することを検討しましたか?より強力なMVC風のモデルと組み込みのデータバインディングが優れています。それはおそらくあなたの問題を解決し、あなたがより現代的な技術で構築するのを助けるでしょう。

+0

私はしばらくの間スタジオ2005とWinFormsに固執しています。私は質問がかなり一般的なMVCの1つだと思いますが、私はC#のベストプラクティスを知りたいと思います。 –

3

私が作成したWinForm MVCアプリケーションでは、通常、コントローラが何かをインスタンス化することを許可しません(私はコントローラから「new」キーワードを削除します)。

オブジェクトが必要な場合は、そのオブジェクトに対してサービスを依頼し、内部的にはそのオブジェクトをデータソース(リポジトリなど)からフェッチするか、新しいオブジェクトの場合はそのオブジェクトを私に新しいオブジェクトを渡すための工場の種類(既定値、ルールの実行などに必要な既定のプロパティが既に設定されている)

私がこの種の問題について考えているのはこれです:ビュー用のGUIを持っていなくても、代わりにコマンドライン入力があったらどうしたらいいですか?私の見解のために?モデルの作成/追加/削除/更新のロジックは、コントローラではなく、ドメイン内のどこかにある必要があります。コントローラはモデルとビューの間のメディエータになります。ビューはI/Oメカニズムになります。これはコマンドラインインターフェイスのほんのちょっとしたバージョンです。

希望は意味があります。

0

おそらく、ビューに必要なものと一致するようにモデルを設計する必要がありますか?次に、コントローラがビューに渡すモデルは1つだけです。

関連する問題