0

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

4

1 に答える 1