有没有办法创建一个带参数的CommandBinding?你通常可以像这样为控件的命令添加绑定:
<Control.CommandBindings>
<CommandBinding Command="ApplicationCommands.XXX" CanExecute="XXX_CanExecute"
Executed="XXX_Executed">
</CommandBinding>
</Control.CommandBindings>
我想知道是否也有一种传递参数的方法?
3条答案
按热度按时间fjaof16o1#
不,您在
CommandBinding
上没有CommandParameter
,但是您可以使用UIElement
中的InputBindings
来添加例如MouseBinding
,它具有Command
和CommandParameter
属性。doinxwow2#
必须将参数值赋给调用命令的元素的
ICommandSource.CommandParameter
属性(例如Button.CommandParameter
)。此属性也接受Binding
。可以从
ExecutedRoutedEventArgs.Parameter
和CanExecuteRoutedEventArgs.Parameter
属性中检索该参数。当点击
Button
或ICommandSource
时,它会将路由的命令和命令参数一起发送到逻辑树中,CommandBinding
可以捕获这个事件并使用注册的处理程序处理它。关键是命令源必须定义命令参数,而不是
CommandBinding
,这样,同一个CommandBinding
可以处理发送不同命令参数的不同命令源。chy5wohz3#
您是否尝试过CommandParameter属性?