2

WinForms を使用する場合、フォーム コントロールのコードを整理する理想的な方法は何ですか? これはあいまいに聞こえますが、明確にするために展開してみましょう。

私のアプリケーションでは、多数のフォーム コントロールを使用しています。ListView はその 1 つです。アプリを起動する前に、ListView のヘッダーを設定し、列を設定し、データを取得し、ListView にデータを入力する必要があります。項目が削除または追加されたときにリスト ビューを再描画するコードがあるだけでなく、さまざまなListView のイベントのコード。

これは一例です。私のアプリケーションは、多くの機能を持ち、実行時にロードまたは再描画する前に設定を必要とする多数のコントロールを使用しています。

これらすべてをメインのフォームに詰め込むと、複雑で面倒になります。

物をきれいに整頓し、保守しやすく保つための理想的なオプションは何ですか?

4

4 に答える 4

2

デザイン パターンではなく要素の順序付けを探している場合は、Style Copをお勧めします。慣れると、必要なコードを簡単に見つけることができます。(Style Cop には、コメントなどに関する他の多くのルールがあり、コードの編成もはるかに簡単になります)。

style cop 要素の順序付けルールhttp://www.stylecop.com/docs/SA1201.htmlに従って、要素は次の順序で配置する必要があります。

  • 外部エイリアス ディレクティブ
  • ディレクティブの使用
  • 名前空間
  • デリゲート
  • 列挙型
  • インターフェース
  • 構造体
  • クラス

クラス、構造体、またはインターフェイス内では、要素は次の順序で配置する必要があります。

  • 田畑
  • コンストラクター
  • ファイナライザー (デストラクタ)
  • デリゲート
  • イベント
  • 列挙型
  • インターフェース
  • プロパティ
  • インデクサー
  • メソッド
  • 構造体
  • クラス

編集 OP の最後の編集以来、これは実際には彼が話していることではないことがわかります。ユーザー インターフェイスに直接関係しないすべてのコードを別のクラスまたは複数のクラスに移動し、フォーム クラスの UI コントロールを直接参照するコードのみを保持することをお勧めします。

于 2013-08-22T12:07:43.580 に答える
1

次のような設計パターンを使用できます。

モデル - ビュー - プレゼンター (MVP)。

モデル-ビュー-ビューモデル (MVVM);

モデル - ビュー - コントローラー (MVC)。

これらは、ロジック レイヤーをユーザー インターフェイス レイヤーから分離するのに最適です。ここでいくつかの例を見ることができます。これは Model-View-ViewModel (MVVM) 用で、私にとってはうまくいきます。

デザイン パターンの良いところは、コードをテストしやすくすることです。

于 2013-08-22T11:48:23.997 に答える
0

コードをモジュール化するために使用できるパターンは多数あります。GUI にデータを入力する一般的な方法は、MVC または MVP パラダイムを使用することです。UI スレッドをブロックせずにデータを取得する必要がある場合delegatesは、プレゼンター/コントローラーで使用して、基になるデータソースから必要なデータを取得できます。

于 2013-08-22T11:49:43.730 に答える
0

constructorフォーム コントロールの を作成し、コンストラクターから機能を処理します。またはform_load、コントロールを含むフォームのイベントで機能を処理します

于 2013-08-22T12:06:30.857 に答える