現在のコードを変更して、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 は特定のイベントに関して制限されていますか? 私は何か間違ったことをしていますか?