Создать пользовательский элемент управления с повторно используемыми свойствами - PullRequest
1 голос
/ 14 ноября 2009

Это похоже на мой последний пост, но с другой целью.

Я создал собственный элемент управления, но когда я установил для него свойства ... ВСЕ экземпляры этого элемента управления на моей странице получают одно и то же свойство. Мне нужно иметь возможность установить свойство «abc» для одного экземпляра элемента управления на моей странице, а затем установить точно такое же свойство для «xyz» для другого экземпляра элемента управления на той же странице.

Может ли кто-нибудь пролить свет?

Namespace CustomControl
Public Class mycontrol : Inherits Literal
    Protected Overrides Sub CreateChildControls()
        Dim value As String = "test"
        If _doubleit = True Then
            value = value & " test"
        End If

        MyBase.Text = value
        MyBase.CreateChildControls()
    End Sub

    Private Shared _doubleit As Boolean = True
    Public Shared Property doubleit() As Boolean
        Get
            Return _doubleit
        End Get
        Set(ByVal value As Boolean)
            _doubleit = value
        End Set
    End Property
End Class

Конечное пространство имен

1 Ответ

2 голосов
/ 14 ноября 2009

Удалите Shared из вашей переменной и из декларации вашего свойства. Shared означает, что вы не хотите: Все экземпляры имеют одинаковое значение.

Итак, ваш код должен выглядеть так:

Private _doubleit As Boolean = True
Public Property doubleit() As Boolean
    Get
        Return _doubleit
    End Get
    Set(ByVal value As Boolean)
        _doubleit = value
    End Set
End Property
...