[ad_1]
Chào các bạn.
Tôi có một Bộ sưu tập quan sát.
Tôi đã sử dụng sự kiện CollectionChanged.
Nhưng sự kiện này chỉ tăng lên khi thêm một mục mới hoặc một mục bị xóa.
Vậy làm cách nào tôi có thể phát hiện xem một mục có được chỉnh sửa hay không?
(Và tất nhiên, sẽ tốt hơn nếu phát hiện mục nào có phiên bản.)
Xin vui lòng giúp đỡ?
Những gì tôi đã thử:
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
Giải pháp 1
Bạn không thể biết liệu một đối tượng có bị thay đổi hay không bằng cách sử dụng ObservableCollection. Cách thực hiện việc này là sử dụng INotifyPropertyChanged và tăng sự kiện PropertyChanged bất cứ khi nào bạn thay đổi giá trị trong thuộc tính.
[ad_2]
コメント