グリッドにバインドするために使用する BindingSource があります。バインディング ソース自体は、カスタム クラスにバインドします。例えば
MyGrid.DataSource = MyBindingSource
'Bind the Binding source to data
For each classInstance as myClass in MyCollection
MyBindingSource.List.Add(classInstance)
Next
ユーザーは、このリストにアイテムを追加または削除できます。私の目的は、この更新されたリストをデータベースに保存することです。バインディング ソースのリストが変更されたかどうか (つまり、項目が追加されたか、項目が削除されたか) を判断する必要があります。
カスタム クラスに INotifyPropertyChanged を実装し、OnPropertyChanged イベントを利用できることは承知していますが、私の場合、クラスのプロパティは変更されません。私が考えることができる他の解決策は、BindingSource の ListChanged イベントを使用し、そこで追加および削除されたすべての行のコレクションを維持することです。このアプローチは私にとってはうまくいくかもしれませんが、少し不安定だと思います。
バインディング ソースまたはコレクション (私の場合は IList など) は、上記を判断するのに役立つ他のプロパティを提供しますか?