Làm cách nào để phát hiện xem bộ sưu tập quan sát của tôi có thay đổi trong VB.NET không?

lập trình


Chào các bạn.
Tôi có một Bộ sưu tập quan sát.
Tôi đã sử dụng sự kiện CollectionChanged.
Nhưng sự kiện này chỉ tăng lên khi thêm một mục mới hoặc một mục bị xóa.
Vậy làm cách nào tôi có thể phát hiện xem một mục có được chỉnh sửa hay không?
(Và tất nhiên, sẽ tốt hơn nếu phát hiện mục nào có phiên bản.)

Xin vui lòng giúp đỡ?

Những gì tôi đã thử:

VB.NET
Imports System.Collections.ObjectModel

Public Class Person
    Public Property Name As String
End Class

Public listORG As New ObservableCollection(Of Person)()

Sub New()
    InitializeComponent()

    Dim names As New List(Of String) From 
        {"Alice", "Bob", "Charlie", "David", "Eve",
         "Frank", "Grace", "Harry", "Ivy", "Jack"}
    Dim rand As New Random()
    For i As Integer = 0 To 29
        Dim index As Integer = rand.Next(names.Count)
        Dim person As New Person With {.Name = names(index)}
        listORG.Add(person)
    Next i

    ' Bind ObservableCollection to DataGrid in WPF
    DGlistORG.ItemsSource = listORG

    AddHandler listORG.CollectionChanged, AddressOf listORG_CollectionChanged
End Sub

Private Sub listORG_CollectionChanged(sender As Object, e As System.Collections.Specialized.NotifyCollectionChangedEventArgs)
    MsgBox("Updated")
End Sub

Giải pháp 1

Bạn không thể biết liệu một đối tượng có bị thay đổi hay không bằng cách sử dụng ObservableCollection. Cách thực hiện việc này là sử dụng INotifyPropertyChanged và tăng sự kiện PropertyChanged bất cứ khi nào bạn thay đổi giá trị trong thuộc tính.

コメント

タイトルとURLをコピーしました