Я изучаю учебник проекта WPF-MVVM на C#, а также я пытаюсь записать его в VB.Как написать параметры функции DelegateCommand в VB.net
В ViewModel файле (C#) код так:
public ICommand RemoveBookCommand
{
get
{
if (_removeBookCommand == null)
{
_removeBookCommand = new DelegateCommand<Book>(RemoveBook, CanRemoveBook);
}
return _removeBookCommand;
}
}
private bool CanRemoveBook(Book book)
{
return Books.Count > 0 && Books.Contains(book);
}
private void RemoveBook(Book book)
{
Books.Remove(book);
CurrentBook = null;
}
И я преобразовать его в VB так:
Public Property RemoveBookCommand() As ICommand
Get
If _removeBookCommand Is Nothing Then
_removeBookCommand = New DelegateCommand(Of Book)(RemoveBook, CanRemoveBook)
End If
Return _removeBookCommand
End Get
Set(value As ICommand)
End Set
End Property
Private Function CanRemoveBook(book As Book) As Boolean
Return Books.Count > 0 And Books.Contains(book)
End Function
Private Sub RemoveBook(book As Book)
Books.Remove(book)
CurrentBook = Nothing
End Sub
Кажется, что нет никаких проблем
Но Visual Studio говорит:
Argument not sp ecified для параметра 'book' of 'Частная функция CanRemoveBook (книга As Models.Book) As Boolean'.
Аргумент не указан для параметра 'book' of 'Private Sub RemoveBook (книга As Models.Book)'.
Он работает для C#, если для функций не указан аргумент «Книга». Итак, что проблема в VB.net
Вы можете установить свойство 'Public ReadOnly RemoveBookCommand собственности() Как ICommand', а затем удалите часть 'Set' preoprty, поскольку она, похоже, ничего не делает. – Ric