作为属性

时间:2017-01-23 11:57:10

标签: .net vb.net webforms

我不确定这里的术语是否正确,所以我的搜索毫无结果。

我有一个具有MyClass功能的班级ToControls。此函数返回一些自定义控件。

创建MyClass的实例时,我希望传递一个方法,该方法将绑定到OnClick返回的LinkButton的{​​{1}}事件。

这是一个简化版本:

ToControls

我的代码隐藏看起来像这样:

Public Class MyClass

    Private proAction As Action

    Public Property Action() As Action
        Get
            Return proAction
        End Get
        Set(value As Action)
            proAction = value
        End Set
    End Property

    Public Function ToControls() As Object
        Dim htmlWrapper As New HtmlGenericControl("div")

        Dim lnkTest As New LinkButton
        lnkTest.Text = "TEST"
        AddHandler lnkTest.Click, AddressOf Action.Method.Name
        ' ## Error: 'AddressOf' operand must be the name of a method (without parentheses)

        htmlWrapper.Controls.Add(lnkTest)

        Return htmlWrapper
    End Function

End Class

我遇到了Protected Sub MySub() Dim myObj As New MyClass myObj.Action = AddressOf MyPassedSub End Sub Protected Sub MyPassedSub() Response.Write("Hello World!") End Sub 我认为可能对此有用但我怀疑我错了。

我怎样才能做到这一点?

0 个答案:

没有答案