¿Cómo puedo detectar si mi colección de observaciones cambió en VB.NET?

programación


Hola amigos.
Tengo una colección de observación.
Usé el evento CollectionChanged.
Pero este evento solo se produce cuando se agrega un nuevo elemento o se elimina un elemento.
Entonces, ¿cómo puedo detectar si se editó un elemento?
(Y, por supuesto, también sería mejor detectar qué elemento obtuvo la edición).

¿Alguna ayuda por favor?

Lo que he probado:

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

Solución 1

No se puede saber si un objeto ha sido modificado usando una ObservableCollection. La forma de hacerlo es utilizar INotifyPropertyChanged y generar el evento PropertyChanged cada vez que cambie el valor de una propiedad.

コメント

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