Saya punya Dictionary (Of long, Class)
. Kelas memiliki banyak properti. Dan saya ingin melihat data Kamus ini di DataGridView. Jadi, Cukup saya menggunakan:
DataGridView1.DataSource = Dictionary.Values.ToArray
Sekarang, properti di dalam objek Kelas untuk rekaman di dalam Kamus terus diperbarui (terlalu sering). Dan saya ingin mencerminkan pembaruan ini ke DataGridView secara langsung.
Saya yakin menggunakan DataGridView1.DataSource = Dictionary.Values.ToArray
setiap kali bukanlah cara yang efisien dan akan memakan banyak daya pemrosesan. Bagaimana saya bisa membuat Kamus Dapat Diikat (seperti di DataTables misalnya)? Saya memerlukan ini di VB.NET, saya mencoba menggunakan Linq untuk menyelesaikan ini (Ditemukan di sini https://stackoverflow.com/a/855954/2546348) Namun tetap saja, saya tidak melihat pembaruan baru hadir di DataGridView.
Ada saran? Pendekatan apa yang terbaik untuk menerapkan hal ini?
INotifyPropertyChanged
. Setelah selesai, Anda dapat mengikat[Dictionary].Values
Anda ke BindingSource, lalu mengikat DGV ke BindingSource (mengatur.DataSource = [TheBindingSource]
DGV). Setiap perubahan pada nilai-nilai Kamus akan segera tercermin dalam DGV. - person Jimi   schedule 11.11.2019[Dictionary].Values
tidak statis (referensi ValueCollection yang mendasarinya akan diperbarui saat Anda menambah/menghapus ke/dari Kamus), itu tidak memunculkan pemberitahuan perubahan daftar (sebenarnya ada cara, tapi saya tidak akan melakukannya menyarankan apapun :). Anda dapat: 1) Menambahkan Item baru ke BindingSource (objekTValue
, denganBindingSource.Add([object])
), menyinkronkan Kamus bila diperlukan. 2) Buat kelas Anda sendiri yang mewarisi Kamus‹TKey, TValue› dan mengimplementasikan antarmukaIBindingList
. 3) Gunakan DataTable alih-alih Kamus - person Jimi   schedule 12.11.2019Dictionary<TKey, TValue>
, namun memberikan bentuk ValueCollection sendiri saat terikat data, melalui metodeIBindingList
dan metodenya. daftar pemberitahuan yang diubah secara umum dipahami/ditafsirkan. - person Jimi   schedule 12.11.2019