[ad_1]
مرحبا يا رفاق.
لدي مجموعة المراقبة.
لقد استخدمت الحدث 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 كلما قمت بتغيير القيمة في خاصية ما.
[ad_2]
コメント