我試圖改變我當前的代碼,並將其移向MVVM設計。EventToCommand從來沒有爲我工作
我有一個網格控制爲這樣:
<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光與執行以下操作:
<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是否受特定事件限制?難道我做錯了什麼???
什麼是GridContainer? – Phil
我自己的用戶控件,其中包含一個DevExpress DXGrid。 – user2170838