苦苦挣扎VB .net Lambdas

ili*_*ian 5 vb.net lambda

我试图在一些VB.Net代码中使用lambdas,本质上我试图在调用数据绑定时设置一个标志.

简化它看起来像这样:

Dim dropdownlist As New DropDownList()
dropdownlist.DataSource = New String() {"one", "two"}
Dim databoundCalled As Boolean = False
AddHandler dropdownlist.DataBound, Function(o, e) (databoundCalled = True)
dropdownlist.DataBind()
Run Code Online (Sandbox Code Playgroud)

我的理解是databoundCalled变量应该设置为true,显然我遗漏了一些东西,因为变量总是保持为假.

我需要做些什么来解决它?

Cod*_*ker 7

在查看您的代码并摸不着头脑之后,我找到了一个有效的解决方案.现在,为什么这对你所拥有的东西起作用,我不清楚.也许这至少会帮助你朝着正确的方向前进.关键的区别是我有一个方法将值设置为true/false.其他一切都是一样的.

这是我的整个Web项目代码:

Partial Public Class _Default
    Inherits System.Web.UI.Page

    Dim databoundCalled As Boolean = False
    Dim dropdownlist As New DropDownList()

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Write(databoundCalled)
        Bind()
        Response.Write(databoundCalled)

    End Sub

    Sub Bind()
        AddHandler dropdownlist.DataBound, Function(o, e) (SetValue(True))

        dropdownlist.DataSource = New String() {"one", "two"}
        dropdownlist.DataBind()
    End Sub

    Function SetValue(ByVal value As Boolean) As Boolean
        databoundCalled = value
        Return value
    End Function
End Class
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!


alm*_*ori 3

vb.net 中的单行 Lambda 始终是表达式,您的 lambda 表达式所做的基本上是说 databoundCalled = True 或 (databoundCalled == True) 如果您的 ac# 人员未设置 databoundCalled = True