2016-12-14 3 views
0

私はタイトルとして言います。 GUIのメインウィンドウを他のクラスから変更できるようにしたい。メインウィンドウのクラスにすべてのメソッドがあると、すべてうまく動作します。しかし、私は同じ名前空間で別のクラスを使用すると動作しません。私のコードはコンパイルされますが、ボタンをクリックしても何も起こりません。別のクラスからmainwindowにアクセスするには?

class w_Kcal 
{ 
    MainWindow mw; 

    public w_Kcal(MainWindow mw) 
    { 
     this.mw = mw; 
     mw.maintenanceButton.Click += MaintenanceButton_Click; 
    } 

    public void MaintenanceButton_Click(object sender, RoutedEventArgs e) 
    { 
     mw.maintenanceBox.Visibility = Visibility.Visible; 
     mw.maintenanceOKBtn.Visibility = Visibility.Visible; 
    } 
} 

メインウィンドウ:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
} 
+0

あなたの質問は意味がないのに役立ちます。どういう意味ですか?どのボタン?あなたのボタンは、MainWindow上の2つのコントロールの可視性を変更するだけです。 –

+1

これはMVVMを行う正しい方法ではないことに注意してください。ビューモデル内のウィンドウへの参照があってはいけません。そのイベントは、MainWindowクラスのコードビハインドに入れなければなりません。 –

答えて

0

あなたはどこにでもw_Kcalをインスタンス化していないので、それは起こります。メインウィンドウのコードでこのクラスを作成し、それが動作するはずです:

public partial class MainWindow : Window 
{ 
    private w_Kcal helper; 
    public MainWindow() 
    { 
     InitializeComponent(); 
     helper = new w_Kcal(this); 
    } 
} 

希望これは

+0

ありがとう!これは機能しました:) –

+0

@CarlZiemann NP –

関連する問題