Статья Джоша Смита в журнале MSDN о MVVM содержит лямбда-выражение, которое я не совсем понимаю. Какова цель param в этом коде?
_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)
Я бы ожидал увидеть param , только если он используется в CanSave или Save. Я немного новичок в лямбда-выражениях. Насколько я могу судить, странно видеть переменную, которая нигде не объявлена и не используется нигде. Любое объяснение будет оценено.
Чтобы поместить это в контекст, конструктор для RelayCommand (C #):
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
и в VB:
Public Sub New(ByVal execute As Action(Of Object), _
ByVal canExecute As Predicate(Of Object))