[ad_1]
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é.
[ad_2]
コメント