Статья MSDN Magazine Josh Smith на MVVM содержит лямбда-выражение, которое я не полностью понимаю. Какова цель параметрического усилителя в этом коде?
_saveCommand = new RelayCommand(param => this.Save(),
param => this.CanSave );
Переведенный на мой предпочтительный язык VB это:
Dim saveAction as New Action(Of Object)(AddressOf Me.Save)
_saveCommand = New RelayCommand(saveAction, Function(param) Me.CanSave)
Я ожидал бы только видеть параметрический усилитель, если он используется в CanSave, или Сохранить. Я несколько плохо знаком с лямбда-выражениями. Это нечетно для меня для наблюдения переменной, которая ни не объявляется, ни используется где угодно насколько я могу сказать. Любое объяснение ценилось бы.
Для помещения этого в контекст, конструктор для RelayCommand (C#):
public RelayCommand(Action
и в VB:
Public Sub New(ByVal execute As Action(Of Object), _
ByVal canExecute As Predicate(Of Object))