我最近进入了VB.NET的欢乐世界,但对于我的生活,我似乎无法弄清楚为什么以下不起作用。
当我在这里写这段代码时,一切都很好:
MyNavigationCommand = New RelayCommand(AddressOf Navigate)
Private Sub Navigate()
Navigator.NavigateTo(NavigationRoutes.DetailScreen)
End Sub
但是,当我尝试使用lambda语法完全相同时,当我单击触发命令的按钮时,我的lambda中的代码不会被命中。
以下一行不起作用:
MyNavigationCommand = New RelayCommand(Sub() Navigator.NavigateTo(NavigationRoutes.DetailScreen))
这应该与我之前的方法完全相同,不应该吗?或者我错过了什么?
答案 0 :(得分:0)
我不确定你出了什么问题。这是我编写的代码,用于测试:
Sub Main
Dim MyNavigationCommand = New RelayCommand(AddressOf Navigate)
Dim MyNavigationCommand2 = New RelayCommand(Sub() Console.WriteLine("!"))
Navigate
MyNavigationCommand
MyNavigationCommand2
End Sub
Public Delegate Sub RelayCommand
Public Sub Navigate()
Console.WriteLine("!")
End Sub
运行时,此代码会生成三行!
。