2016-04-07 26 views
1

temizledikten sonra DataGridView meta verilerini saklayın İki veritabanı nesnesi arasında, join sonucu oluşan koleksiyonuna sahip DataGridView var. Sonuçta ortaya çıkan birleşimden yalnızca belirli sütunları seçiyorum ve DataGridView numaralı telefonuma DataSource özelliği olarak bildiriyorum. Benim DataGridView'un meta verileri, var nesnesinin sütunlarına uyarlanır ve çalışma zamanında biçimlendirmeyi uygular.
join sonucuyla içeriği temizleyip yeni var beslemem gerekiyor. DataGridView.DataSource = null kodunu yazarsam içeriği temizlerim, ancak meta verileri de yok ederim. Bir dahaki sefere var koleksiyonumu besliyorum, biçimlendirmenin tamamı berbat olacak.
Veri, DataGridView içeriğine nasıl bağlanacağını ve özgün meta verilerini nasıl koruyacağınız sorusudur. Katılmış nesnelerimden sonra modellenen boş var koleksiyonunu besleyebilirim ancak içeriği temizleyecek ve sütun yapısını koruyacak yerel bir DataGridView yöntemi var mı?DataSource

cevap

1

deneyin ardından ızgara sadece tanımlı sütunları gösterir. Ayrıca, DataSource'u null olarak ayarladıktan sonra bile sütunları tutar.

Örnek: Aşağıdaki örnekte,

, ızgara sadece ızgara özellik1 ve özellik2 gösterir. Ayrıca, veri kaynağını null olarak ayarlarsanız, ızgara sütunları tutar.

var column1 = new DataGridViewTextBoxColumn(); 
column1.DataPropertyName = "Property1"; 
column1.HeaderText = "Column1"; 

var column2 = new DataGridViewTextBoxColumn(); 
column2.DataPropertyName = "Property2"; 
column2.HeaderText = "Column2"; 

this.dataGridView1.Columns.Add(column1); 
this.dataGridView1.Columns.Add(column2); 

this.dataGridView1.AutoGenerateColumns = false; 
this.dataGridView1.DataSource = Enumerable.Range(1, 10) 
              .Select(x => new 
              { 
               Property1 = x, 
               Property2 = x, 
               Property3 = x 
              }).ToList(); 
+1

Bu aradığım cevap! Harika çalıştı. Komik, yazıyı boş kaynak kullanan metodu temizledikten hemen sonra okuduğumda, hehe, şimdi bu kontrolü temizlemenin iki yolu var ama seninki daha fazla RAM dostu. – ArtK

1

Eğer sizin DataGridView için sütunlar tanımlamak ve false için AutoGenerateColumns ayarlarsanız

dataGridView1.Rows.Clear(); 
İlgili konular