我正在尝试更改我当前的代码并将其移向 MVVM 设计。
我有一个这样的网格控件:
<ctl:GridContainer x:Name="GridResponses" CellValueChanged="GridResponses_CellValueChanged">
.
.
.
</ctl:GridContainer>
甚至这样:
Private Sub GridResponses_CellValueChanged(sender As Object, e As CellValueEventArgs)
If e.Column.FieldName = "PRIORITY" Then
.
.
.
End If
End Sub
现在我将上面的代码移动到使用 MVVM Light 并执行以下操作:
<ctl:GridContainer DataContext="{Binding ResponsesDataView}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="CellValueChanged">
<cmd:EventToCommand Command="{Binding GridCellValueChangedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ctl:GridContainer>
在我的 ViewModel 我有以下 RelayCommand 声明如下:
Private m_cmdGridCellValueChanged As RelayCommand(Of CellValueEventArgs)
.
.
.
m_cmdGridCellValueChanged = New RelayCommand(Of CellValueEventArgs) _
(Sub(e)
If e.Column.FieldName = "PRIORITY" Then
.
.
.
End If
End Sub)
它永远不会执行!我什至尝试使用无参数的 RelayCommand 并尝试显示一个 MessageBox,但没有成功。
EventToCommand 在特定事件方面是否受到限制?难道我做错了什么???