0

私は2つのWPFウィンドウを持っています:

  • メインウィンドウ
  • ウィンドウ1

Window1 データで実行されたいくつかのクエリが取得され、Window1 の List に格納された後

私が何を達成するかは次のとおりです。

  1. Window1 の botton clck で、MainWindow のチェックボックス コントロールのチェックを外したい
  2. Window1のボタンクリックで、ListのデータをMainWindowのdatagrd1にロードしたい

#2を考慮して、MainWindowにパブリック静的メソッドを実装し、ボタンクリックでWindow1から呼び出そうとしましたが、そのメソッド内でdatagrid1を参照できるという問題がありました。エラーは次のとおりです。「非静的フィールド datagrid1 を参照できませんでした」。

上記を実装する方法はありますか?ありがとうございました...

4

2 に答える 2

3

MainWindow の現在のインスタンスを取得できます。

MainWindow main = (MainWindow)Application.Current.MainWindow; 

あなたの質問はウィンドウがどのように相互作用しているかについて多くの情報を提供していないため、より良いアプローチを提案することはできませんでしたが、これはあなたが望むものを与えるはずです.

于 2013-03-16T12:00:03.857 に答える
2

これは、データ バインディングと mvvm を使用して実現できます。これらの手法を使用してウィンドウ間で通信する簡単なアプリについては、こちらを参照してください。

子ユーザー コントロールからの MVVM メイン ウィンドウ コントロールのバインド

編集 私が説明する手法を使用すると、別の方法で問題に対処する必要があり、既存のコードで問題を解決することはできません。しかし、これは静的メソッドを使用して uielements を操作しようとするよりも優れていると思います

于 2013-03-16T11:48:02.607 に答える