【解決方法】VB.NET で観察コレクションが変更されたかどうかを検出するにはどうすればよいですか?


こんにちは皆さん。
私は観察コレクションを持っています。
イベントCollectionChangedを使用しました。
ただし、このイベントは、新しい項目が追加されたとき、または項目が削除されたときにのみ発生します。
では、アイテムが編集されたかどうかを検出するにはどうすればよいでしょうか?
(そしてもちろん、どのアイテムがエディションを取得したかを検出することも推奨されます。)

何か助けてください。

私が試したこと:

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

解決策 1

ObservableCollection を使用してオブジェクトが変更されたかどうかを知ることはできません。 これを行うには、INotifyPropertyChanged を使用し、プロパティの値を変更するたびに PropertyChanged イベントを発生させます。

コメント

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