【发布时间】:2012-07-20 20:27:34
【问题描述】:
MVVMLight EventToCommand 可以很容易地用于在您的视图模型上触发ICommand。
<DataGrid>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<GalaSoft_MvvmLight_Command:EventToCommand
Command="{Binding ProductSelectionChangedCommand, Mode=OneWay} "
CommandParameter="{Binding SelectedItems, ElementName=gridProducts}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
在本例中,SelectionChanged 事件属于DataGrid,而Interaction.Triggers xaml 直接嵌套在DataGrid 中。
当事件是DataGridRow(每行都有自己的events)时,我不知道该怎么做。
我设法做到了,但它涉及一个我想避免的处理函数:
<DataGrid>
<DataGrid.ItemContainerStyle>
<Style TargetType="DataGridRow">
<EventSetter Event="DataGridRow.MouseEnter"
Handler="Row_MouseEnter"/>
</Style>
</DataGrid.ItemContainerStyle>
</DataGrid>
在Row_MouseEnter 事件中(在我的 .xaml.cs 文件上)我只是在 ViewModel 上“找到命令”并以编程方式触发它。
我真的很想知道有没有办法直接用Interaction.Triggers做同样的事情
(仅供参考:我正在做的是我在网格上方有一个面板,它显示鼠标在单击之前所在行的详细信息 - 这会触发详细信息视图)。
【问题讨论】:
标签: wpf mvvm-light wpfdatagrid eventtocommand