2

次のうちどれが優れたプログラミング手法であるかを教えてください。

1.静的クラスを使用してから、次に示すように、クラスMainWindowコンストラクターからの静的クラスへの参照を使用します。

    public partial class Mainwindow : Window
    {
    public MainWindow()
    {
        InitializeComponent();
        UI.window = this;
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {   
        Shutdownads attempt1 = new Shutdownads();
    }
    }

    static class UI
    {
        public static MainWindow window; 
    }

    /*and then refering to the wpf elements from other classes as follows
       UI.window.textbox.Text="blahblah"
       UI.window.button ... and so on
    */

また

2.プログラムのすべてのクラスをMainWindowクラスに含める方がよいですか?

また

3.より良いオプションがありますか(他のクラスを介してUIにアクセスできるだけでなく、より良いOOPも実装します)?

4

3 に答える 3

6

通常、複数のクラスからUI要素を制御することはお勧めできません。

他のクラスからUIを抽象化するメソッドとプロパティを公開するインターフェイスを作成し、そのインターフェイスをクラスに実装する必要がありますMainWindow

他のクラスは、そのインターフェースをコンストラクターパラメーターとして受け入れるか、静的クラスから使用できます。

于 2011-05-26T17:04:10.483 に答える
1

結合されていないコードを作成することをお勧めします。このアプローチで作業する場合、変更をコミットする場所を見失う可能性が非常に高くなります...

「遠い」イベントに反応する可能性は、オブザーバーパターンを実装することです。そのように、視覚化(この場合はメインウィンドウ)の変更をプレゼンテーション層で実際に処理します

于 2011-05-26T17:04:55.197 に答える
1

WinFormsを正確に知りません。ただし、MVCモデルに従う必要があります。

通常、コントローラーであるメインクラス(ケースのメインウィンドウ)を取得します。したがって、すべてのビュー(サブ要素)はこのクラスから制御されます。サブ要素は、メインウィンドウへの参照を保持する場合があります。メインクラスは非常に洗練されている必要があります。もちろん、モデルも切り離す必要があります。静的クラスは悪い習慣です。しないでください。

于 2011-05-26T17:09:18.017 に答える