gpt4 book ai didi

c# - WPF 路由命令隧道

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

我想在我的 WPF 应用程序中实现一个路由命令,以隧道方式连接到用户控件。

我的理解是,路由命令(如路由事件)可以在可视化树中上下传播以找到合适的处理程序,但是我找不到如何执行此操作的简单示例。

我在创建在定义它的同一可视化树节点内处理的路由命令时没有问题。

请有人提供一个简单的解释或示例来演示我如何连接路由命令以在可视化树下方的节点中处理。

更新:我的用例是我有一些我想在选项卡项中执行的功能,作为用户控件实现,我想通过键盘输入触发它。因此,我需要在我的主窗口中处理键盘输入,然后将命令传送到我的特定选项卡项。

谢谢

最佳答案

对于路由命令,我认为您不能这样做,因为它与需要预览的 CanExecute 紧密耦合。

在 WPF 中,考虑使用 EventManager用于路由事件。

在那里,您可以将路由定义为冒泡、隧道或直接。

示例:

public static readonly RoutedEvent ButtonColorChangedEvent = EventManager.RegisterRoutedEvent("ButtonColorChanged",RoutingStrategy.Bubble,typeof(DependencyPropertyChangedEventHandler),typeof(Shirt));

public event RoutedEventHandler ButtonColorChanged {
add {AddHandler(ButtonColorChangedEvent,value);}
remove { RemoveHandler(ButtonColorChangedEvent, value); }
}

关于c# - WPF 路由命令隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963086/

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