C# DGV'den ekleme veya çıkarma yapamıyorum

yunusemreakman

Hectopat
Katılım
7 Kasım 2017
Mesajlar
13
C#:
dgvInventory.DataSource = _player.Inventory;

 dgvInventory.Columns.Add(new DataGridViewTextBoxColumn
 {
 HeaderText = "Name",
 Width = 200,
 DataPropertyName = "Name"
 });
 dgvInventory.Columns.Add(new DataGridViewTextBoxColumn
 {
 HeaderText = "Quantity",
 Width = 200,
 DataPropertyName = "Quantity"

 });

DgvInventory isimli datagridview öğesine datasource özelliğiyle _player. Inventory listesini ekledim. Fakat bu Inventory listesinden bir öge çıkardığımda veya yenisini eklediğimde dgv formda kendini güncellemiyor. Listede kaç tane obje varsa o sayıda kalıyor. Mesela 5 obje olsun. Bir objeyi listeden çıkardığımda "dgv bound exception not found 4 index" gibi bir hata alıyorum. Dgv tabloyu listeye göre nasıl güncellerim? Listeyi güncelledikten sonra tekrar " dgvInventory. DataSource = _player. Inventory "
Yapıyorum işe yaramıyor. Tavsiyeniz nedir?
 

470650

Gigapat
Katılım
28 Ocak 2020
Mesajlar
11.658
Makaleler
32
Çözümler
187
Verileri Array olarak eklemediğiniz için sorun oluyor.

Bu rehberde gerekli yapılandırma işlemlerini okursanız sorununuz çözülür.


Ek olarak DataGrid ile Linq kütüphanesini kullanırsanız SQL kullanır gibi ID değeri ile güncelleme, silme gibi işlemler yapabilirsiniz.
 
KS
KS
yunusemreakman

yunusemreakman

Hectopat
Katılım
7 Kasım 2017
Mesajlar
13
Inventory bir tür listedir. Sorunu şuan çözdüm. Inventory liste değişkenini
böyle değil de
List<InventoryItem> Inventory { get; set; }

böyle tanımlayınca

BindingList<InventoryItem> Inventory { get; set; }

dgv de dinamik olarak değişiklikleri algıladı ve satırları ekleyip silme işlemini yaptı. Sorun çözülmüştür.
 
Yukarı