gpt4 book ai didi

c# - RelayCommand 与 EventToCommand

转载 作者:行者123 更新时间:2023-12-03 10:13:35 27 4
gpt4 key购买 nike

我对 Mvvmlight 中的 RelayCommandEventToCommand 有点困惑。似乎 EventToCommand 处理 EventTrigger 并调用 RelayCommand 来完成工作。如:

 <i:Interaction.Triggers>
<i:EventTrigger x:Uid="i:EventTrigger_1" EventName="MouseLeftButtonUp">
<cmd:EventToCommand x:Uid="cmd:EventToCommand_1" Command="{Binding Form_MouseLeftButtonUpCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>

我的理解正确吗?

那么,我们可以直接使用RelayCommandEventTrigger,而不需要使用EventToCommand吗?

感谢您的帮助!

最佳答案

EventToCommandcustom behavior .它首先由 Expression blend 提供团队和现在的一部分 WPF 4 .如果您不使用 WPF4。您需要来自 here 的 Blend SDK .

行为将功能封装为可重用的组件。这些将在默认情况下不存在功能时使用。例如向 Label、Combobox 等添加命令支持。

can we use RelayCommand directly with EventTrigger, no need to use EventToCommand?

没有。 RelayCommand 是一种避免代码重复定义自定义命令的快捷方式。它扩展了 ICommand,其委托(delegate)可以附加到 Execute(T)可以执行(T)。它类似于 DelegateCommand棱镜图书馆。

<cmd:EventToCommand x:Uid="cmd:EventToCommand_1" Command="{Binding Form_MouseLeftButtonUpCommand}" PassEventArgsToCommand="True"/>

在上面的行中,cmd:EventToCommand 是底层控件的附加功能。 Form_MouseLeftButtonUpCommand 是它执行的 Command。该命令可以封装为RelayCommand

关于c# - RelayCommand 与 EventToCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116734/

27 4 0