我有一个派生自MvvmLight.ViewModelBase的基类,还有处理对象选择的额外职责。此类定义了RelayCommand<MouseButtonEventArgs>
属性,该属性绑定在View:
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<galaxcmd:EventToCommand Command="{Binding SelectCommand,Mode=OneWay}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
此视图在包含视图中多次使用,我现在也需要处理mousedowns。我的问题出现了,因为我不希望容器处理mousedown,如果它是由包含的视图处理。我认为PassEventArgsToCommand是我解决这个问题的方法,因为我计划将一个子VM设置为MouseButtonEventArgs.Handled = true
。不幸的是,MouseButtonEventArgs参数始终为null。为了以防万一,我也尝试过RoutedEventArgs甚至是EventArgs,但它们也都是null。
我对EventToCommand(或EventTrigger?)做错了什么?
答案 0 :(得分:0)
您可以找到基于Galasofts的here修改后的EventToCommand
实施内容 - 您可以将Eventargs
设置为CommandParameter
并停止事件路由。