Comment puis-je détecter si ma collection d’observations a changé dans VB.NET ?

la programmation


Salut les gens.
J’ai une collection d’observations.
J’ai utilisé l’événement CollectionChanged.
Mais cet événement ne se déclenche que lorsqu’un nouvel élément est ajouté ou qu’un élément est supprimé.
Alors, comment puis-je détecter si un élément a été modifié ?
(Et bien sûr, il serait préférable également de détecter quel élément a été édité.)

Une aide s’il vous plaît ?

Ce que j’ai essayé :

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

Solution 1

Vous ne pouvez pas savoir si un objet a été modifié à l’aide d’un ObservableCollection. La façon de procéder consiste à utiliser INotifyPropertyChanged et à déclencher l’événement PropertyChanged chaque fois que vous modifiez la valeur d’une propriété.

コメント

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