gpt4 book ai didi

c# - 在 WPF 中使用 RoutedCommands 有什么好处

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:51 25 4
gpt4 key购买 nike

我正在努力了解在 WPF 中使用 Custom RoutedCommands 比标准事件有什么好处。

假设我有一个在静态类中声明的自定义 RoutedCommand,如下所示:

public static readonly RoutedCommand Foo = new RoutedCommand();

为了将它连接到 UIElement,我会这样做:

CommandBindings.Add(new CommandBinding(Commands.Foo, new ExecutedRoutedEventHandler((x, y) => {

MessageBox.Show("Something Happend");

})));

好的,通常以更简洁的方式进行,但我的第一个问题是 - 路由命令如何跟踪此特定 UI 元素具有针对它的 CommandBinding? routedcommand 是否在整个应用程序树中跟踪命令绑定(bind),直到在其命令绑定(bind)列表中找到具有正确 routedcommand 的 UIElement?

我注意到有些东西仍然需要触发这个命令,比如一个按钮

btn.Command = Commands.Foo;

我的下一个问题是,仅在标准事件上创建这些路由命令有什么意义?

最佳答案

主要的好处是它在使用 MVVM 时将应用程序的不同层分开。它将代码放在 ViewModel 中并且不会污染您的 View 。它还允许命令在可视化树中冒泡,以便容器控件可以处理其子项的命令。

从您的示例代码看来,您并没有真正使用 MVVM,因此如果您不需要冒泡(或隧道)功能,您可能不会从使用命令中获得任何好处。

关于c# - 在 WPF 中使用 RoutedCommands 有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com