我在ItemTemplate上有一個帶Label1和Button1的DataRepeater1。這三個控件綁定到BindingList(Of T),其中T是atm,它是一個非常簡單的類,它具有單個字符串屬性更改綁定數據時DataRepeater不會更新
當用戶單擊其中一個DataRepeater Item按鈕時,它將更新綁定數據中的字符串名單。 I.E.如果用戶單擊DataRepeater中的項0上的按鈕,則相同索引的BindingList中的字符串將發生更改。
這工作
什麼不工作是字符串改變的DataRepeater因爲它綁定到該字符串應該更新的Label1爲相關項目後續 - 但事實並非如此。
誰能告訴我爲什麼?我目前的代碼如下。由於
Imports System.ComponentModel
Public Class Form1
Class ListType
Public Sub New(newString As String)
Me.MyString = newString
End Sub
Public Property MyString As String
End Class
Dim MyList As New BindingList(Of ListType)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Bind BindingList to DataRepeater.
Label1.DataBindings.Add("Text", MyList, "MyString")
DataRepeater1.DataSource = MyList
' Add some items to the BindingList.
MyList.Add(New ListType("First"))
MyList.Add(New ListType("Second"))
MyList.Add(New ListType("Third"))
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Use the Index of the current item to change the string
' of the list item with the same index.
MyList(DataRepeater1.CurrentItemIndex).MyString = "Clicked"
' Show all the current list strings in a label outside of
' the DataRepeater.
Label2.Text = String.Empty
For Each Item As ListType In MyList
Label2.Text = Label2.Text & vbNewLine & Item.MyString
Next
End Sub
End Class
」雖然此鏈接可能回答問題,但最好在此處包含答案的重要部分並提供參考鏈接。如果鏈接頁面更改爲「 – zero323
@ zero323:I'已經更新瞭解釋如何使用INotifyPropertyChnaged的答案。謝謝。 –