多个 Windows 的 RoutedCommand
RoutedCommand for multiple Windows
查看 Google 结果已经好几个小时了,我发现的只是如何使用 RoutedCommand 捕获鼠标点击和键盘快捷键来执行相同操作的示例。
我已经阅读了一些关于 RoutedCommand 的资料,例如 MSDN and https://joshsmithonwpf.wordpress.com/2008/03/18/understanding-routed-commands/,如果我仍然理解正确,它也应该能够做我需要的事情:
- 单击 Window2
中的按钮
- Window2
中的调用方法
- Window1
中的调用方法
- 调用 Window3 中的方法 etc.pp.
用例是一个设置 window,它包含语言设置,在设置中单击“确定”后,所有活动 windows 都应更改其语言字符串。我提出了一个方法,它使用语言标识符重新加载字符串。
所以一般来说,我希望 Window2 中的 ButtonClick 将调用方法 "ChangeLanguage(lng)" 的命令传递给所有活动的 Windows,无论是父 MainWindow 还是另一个与设置完全无关的 ChildWindow。 Window 类 有自己的 ChangeLanguage() 函数来改变自己的字符串。
我想知道在这种情况下使用自定义 EventHandler 是否会更好并以某种方式使其全局化以便每个活动 Window 将监听在设置中更改语言时触发的事件 Window。我在另一个问题 here 中找到了一个全局 CommandHandler 的示例,但我认为这不适用于事件。
- 如果您的视图对象嵌套在根控件中,并且您单击放置在根控件中的按钮,您可以创建 TunnelingRoutedEvent,它将沿着可视化树向下移动。在 Window1,Window2 等你处理这个事件。
- 您可以创建静态委托,Window1、Window2 等中的方法将加入其中,一旦委托被调用,所有关联的方法也会被调用。
- 如果您使用的是 PRISM,CompositeCommand 就是您要查找的内容。
查看 Google 结果已经好几个小时了,我发现的只是如何使用 RoutedCommand 捕获鼠标点击和键盘快捷键来执行相同操作的示例。
我已经阅读了一些关于 RoutedCommand 的资料,例如 MSDN and https://joshsmithonwpf.wordpress.com/2008/03/18/understanding-routed-commands/,如果我仍然理解正确,它也应该能够做我需要的事情:
- 单击 Window2 中的按钮
- Window2 中的调用方法
- Window1 中的调用方法
- 调用 Window3 中的方法 etc.pp.
用例是一个设置 window,它包含语言设置,在设置中单击“确定”后,所有活动 windows 都应更改其语言字符串。我提出了一个方法,它使用语言标识符重新加载字符串。
所以一般来说,我希望 Window2 中的 ButtonClick 将调用方法 "ChangeLanguage(lng)" 的命令传递给所有活动的 Windows,无论是父 MainWindow 还是另一个与设置完全无关的 ChildWindow。 Window 类 有自己的 ChangeLanguage() 函数来改变自己的字符串。
我想知道在这种情况下使用自定义 EventHandler 是否会更好并以某种方式使其全局化以便每个活动 Window 将监听在设置中更改语言时触发的事件 Window。我在另一个问题 here 中找到了一个全局 CommandHandler 的示例,但我认为这不适用于事件。
- 如果您的视图对象嵌套在根控件中,并且您单击放置在根控件中的按钮,您可以创建 TunnelingRoutedEvent,它将沿着可视化树向下移动。在 Window1,Window2 等你处理这个事件。
- 您可以创建静态委托,Window1、Window2 等中的方法将加入其中,一旦委托被调用,所有关联的方法也会被调用。
- 如果您使用的是 PRISM,CompositeCommand 就是您要查找的内容。