2016-12-01 10 views
-1

私はバーマネージャとポップアップメニューコントロールをWinformsアプリケーションに追加します。メニューをマネージャにバインドするためのコードを追加する必要がありますが、それを行うのが最善の方法はわかりません。Winformコントロールコードの配置

ビルドアウトの残りの部分では非常に(会社が要求する)デザイナーを使用しますが、バインディングはコードAFAIKで行う必要があります。現在、私はフォームのロードメソッドでそれを持っています。

これはうまくいけばいいと思いますが、デザイナーのコードにコントロールの詳細を入れてもいいのか、それともコードの背後にある別の場所に行くべきなのか不思議です。

これは意見に基づく質問ではありません。

+0

コントロールを操作する必要があるので、どこにでも置くことができます。つまり、InitializeComponentsメソッドの後にバインディングを行う必要があります。あなたの "バインディング"に時間がかかる場合、フォームは 'Load'イベントハンドラでバインドするとすべてのバインディングが完了する前に表示されません。後で使用できるロジックがある場合は、 'Shown'イベントを使用してください。 – Fabio

答えて

0

Winformsでは、物事を正しく分けるのが非常に簡単にはなりませんが、できるだけ機能コードからUIコードを分離するようにしてください。

基本的には、すべてのビジネスロジックをUIから分離したクラスに置くようにしてください。 WebアプリケーションやWPFアプリケーションなどの別の種類のアプリケーションで、そのコードをすべて使用できると考えるようにしてください。

コードビハインドにあるものは、UI管理、UIの更新、ビジネスクラスへの変更の渡しにのみ関係している必要があります。また、WinformsにMVVMまたはMVPを持つために存在するいくつかの事があるようだ、このSOの質問を確認してください:UI Design Pattern for Windows Forms (like MVVM for WPF)

+0

私は、UI、ビジネスメソッド、データアクセスなどの分離をしようとしますが、どこにいるかは、そのようなパラダイムに対してはちょっとです。ここの年上の人たちは、コードを「掘ることなく正面に」見たいと思っています。彼らが書いたコードの大部分はビジネスクラスに置かれていたはずですが、大部分のコードはすべてコードの後ろにあります。/ 質問の目的は、誰も「うーん、うまくいきません。私の研究は、私は大丈夫だと言いますが、私は初心者ですので、私は怖がっています。 – Jon

+0

残念なことに、残念なことに、業界は「それは常にそのように働いた」人々でいっぱいですが、私を信じて、物事を分けることは長期的にはあなたを多く助けます。 – Gimly

+0

アドバイスありがとうございます。 – Jon