[英]How to write DelegateCommand function parameters in VB.net
我正在用C#学习WPF-MVVM项目教程,我也试图用VB编写它。
在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说:
没有为'Private Function CanRemoveBook(book As Models.Book)As'参数'book'指定参数。
没有为'Private Sub RemoveBook(book As Models.Book)'的参数'book'指定参数。
当没有为函数指定'Book'参数时,它运行C#。 那么,VB.net中的问题是什么
正确的语法是:
New DelegateCommand(Of Book)(AddressOf RemoveBook, AddressOf CanRemoveBook)
请参阅http://msdn.microsoft.com/de-de/library/y72ewk2b(v=vs.90).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.