0

かなりの時間 Google の結果を調べてきましたが、RoutedCommand を使用して MouseClicks とキーボード ショートカットをキャッチして同じアクションを実行する方法の例しか見つかりませんでした。

MSDNhttps://joshsmithonwpf.wordpress.com/2008/03/18/understanding-routed-commands/などの RoutedCommand に関するいくつかのソースを読みましたが、それでも正しく理解している場合は、私ができることもできるはずです。必要:

  1. Window2 のボタンをクリックします。
  2. Window2 でメソッドを呼び出す
  3. Window1 でメソッドを呼び出す
  4. Window3 etc.pp.でメソッドを呼び出します。

ユースケースは、言語設定を保持する設定ウィンドウであり、設定で [OK] をクリックすると、すべてのアクティブなウィンドウが言語文字列を変更する必要があります。文字列を言語識別子でリロードするメソッドを作成しました。

したがって、一般に、Window2 の ButtonClick は、メソッド「ChangeLanguage(lng)」を呼び出すコマンドをすべてのアクティブな Windows に渡し、親の MainWindow であろうと、設定にまったく関係のない別の ChildWindow であろうとします。Window クラスには、独自の文字列を変更するための独自の ChangeLanguage() 関数があります。

この場合、カスタム EventHandler を使用する方が良いのではないかと思います。何らかの形でそれをグローバルにして、すべてのアクティブなウィンドウが設定ウィンドウで言語が変更されたときに発生するイベントをリッスンします。ここで別の質問でグローバル CommandHandler の例を見つけましたが、それはイベントでは機能していないと思います。

4

1 に答える 1

0
  1. ビュー オブジェクトがルート コントロールにネストされていて、ルート コントロールに配置されたボタンをクリックすると、ビジュアル ツリーを下る TunnelingRoutedEvent を作成できます。Window1、Window2 などでは、このイベントを処理します。
  2. Window1、Window2 などのメソッドが参加する静的デリゲートを作成できます。デリゲートが呼び出されると、関連するすべてのメソッドも呼び出されます。
  3. PRISM を使用している場合、探しているのはCompositeCommandです。
于 2015-07-16T14:16:19.033 に答える