已经浏览了谷歌搜索结果好几个小时了,我发现的只是如何使用 RoutedCommand 捕捉鼠标点击和键盘快捷键来执行相同操作的示例。
我已经阅读了一些有关 RoutedCommand 的资料,例如MSDN和https://joshsmithonwpf.wordpress.com/2008/03/18/understanding-routed-commands/,如果我仍然理解正确,它也应该能够做我想做的事需要:
- 单击 Window2 中的按钮
- Window2中的调用方法
- Window1中的调用方法
- Window3 etc.pp中的调用方法。
用例将是一个包含语言设置的设置窗口,在设置中单击“确定”后,所有活动窗口都应更改其语言字符串。我提出了一个使用语言标识符重新加载字符串的方法。
所以一般来说,我希望 Window2 中的 ButtonClick 将调用方法“ChangeLanguage(lng)”的命令传递给所有活动的 Windows,无论是父 MainWindow 还是另一个与设置完全无关的 ChildWindow。Window 类有它们自己的 ChangeLanguage() 函数来改变它们自己的字符串。
我想知道在这种情况下使用自定义 EventHandler 是否会更好,并以某种方式使其全局化,因此每个活动窗口都会监听在设置窗口中更改语言时触发的事件。我在这里的另一个问题中找到了一个全局 CommandHandler 的示例,但这不适用于我想的事件。