readonly 속성에 대한 databind 레이블을 가져 오려고했습니다. 나는 이것을 구현하고있는 훨씬 복잡한 프로젝트를 가지고 있으며 작동하지 않는다. 나는이 프로젝트에 훨씬 더 단순한 버전을 만들었고 내 데이터 바인딩은 여전히 업데이트되지 않도록이 작업에 도움을 얻지 못했습니다.데이터 바인딩이 업데이트되지 않습니다.
내 문제를 복제하려면 텍스트 상자, 레이블 및 버튼이 포함 된 양식과 클래스가 필요합니다.
Imports System.ComponentModel
Public Class databinding
Implements INotifyPropertyChanged
Public Sub New()
numbers = New List(Of number)
End Sub
Public Property numbers As List(Of number)
Get
Return m_number
End Get
Set(value As List(Of number))
m_number = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("hnumber"))
End Set
End Property
Private m_number As List(Of number)
Public ReadOnly Property hnumber As Integer
Get
Dim list As IList(Of number) = (From t As number In numbers Select t Order By t.value Descending).ToList()
If (list.Count > 0) Then
If (IsNothing(list(0).value)) Then
Return "0"
Else
Return list(0).value
End If
End If
Return "0"
End Get
End Property
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
End Class
Public Class number
Public Property value As Integer
Get
Return t_number
End Get
Set(value As Integer)
t_number = value
End Set
End Property
Private t_number As Integer
End Class
을 다음과 같이 클래스의 코드는 다음과 같은 형태의 코드는 다음과 같습니다 당신이 텍스트 상자에서 버튼 번호를 클릭하면 이제 내 이해
Public Class Form1
Public numberlist As New databinding
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.DataBindings.Add(New Binding("text", numberlist, "hnumber"))
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim newnum As New number
newnum.value = TextBox1.Text
numberlist.numbers.Add(newnum)
End Sub
End Class
을 기반으로 이 목록에 추가됩니다. 그리고 hnumber 값은 중단 점과 시계를 사용하여 업데이트됩니다. 읽을 때부터 새로운 레이블을 설정하여 데이터 바인딩을 다시 검사 할 때 inotifypropertychanged를 구현해야합니다 (완료되었습니다).
레이블이 0으로 유지됩니다. Label1을 통해 감시를 실행하면 해당 데이터 바인딩> 목록> arrayList> (0)> System.Windows.Forms.Binding> DataSource> Databinding_test.databinding 클래스 (hnumber에 대한 올바른 값 포함)가 나열되어 있으므로 Label이 실제로 바인딩해야하는 값을 알 수 있음을 보여줍니다.
누구나 내가이 모든 일을하기 위해 놓친 것에 대해 저를 채워 주시겠습니까? 거의 모든 것이 제 머리카락을 꺼내게 만듭니다.
감사합니다, MTG는