Bagaimana saya bisa mendeteksi jika koleksi observasi saya berubah di VB.NET?

pemrograman


Hai semuanya.
Saya memiliki Koleksi Observasi.
Saya menggunakan acara CollectionChanged.
Namun event ini hanya muncul ketika item baru ditambahkan, atau item dihapus.
Jadi bagaimana saya bisa mendeteksi jika suatu item telah diedit?
(Dan tentu saja, akan lebih baik juga untuk mendeteksi item mana yang mendapat edisi.)

Mohon bantuannya?

Apa yang saya coba:

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

Solusi 1

Anda tidak dapat mengetahui apakah suatu objek telah diubah menggunakan ObservableCollection. Cara melakukannya adalah dengan menggunakan INotifyPropertyChanged dan memunculkan acara PropertyChanged setiap kali Anda mengubah nilai properti.

コメント

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