मैं नहीं समझ सकता क्यों मेरे DataGridView खाली किया जा रहा है (यदि कोई भी पंक्ति, कोई स्वत: जनरेट कॉलम) पर रहता है:BindingSource/DataGridView बातचीत
BindingList<MyObject> bList = new BindingList<MyObject>();
fileStream.Position = 0;
MyObject.Deserialize(fileStream).ForEach(
j => bList.Add(j));
this.bindingSource1.SuspendBinding();
this.dataGridView1.Columns.Clear();
this.dataGridView1.AutoGenerateColumns = true;
this.dataGridView1.Enabled = false;
this.dataGridView1.Invalidate();
this.bindingSource1.DataSource = bList;
this.dataGridView1.DataSource = bindingSource1;
this.bindingSource1.ResumeBinding();
this.dataGridView1.Enabled = true;
this.dataGridView1.Refresh();
अगर मैं क्या स्पष्ट रूप जहां MyObject रूप
public class MyObject
{
public DateTime CreationDate;
public string CreationId;
public static List<MyObject> Deserialize(Stream s)
{
XDocument xml = XDocument.Load(s);
var ps = from p in xml
.Descendants("p")
.Descendants("object")
select
new MyObject
{
CreationId = p.Attribute("creationid").Value
};
return ps.ToList();
}
}
परिभाषित किया गया है इसके अलावा नीचे दिए गए कॉलम सेट करें, पंक्तियों को ग्रिड में जोड़ा जाता है लेकिन वे सभी खाली हैं
DataGridViewTextBoxColumn dc = new DataGridViewTextBoxColumn();
dc.DataPropertyName = "CreationDate";
dc.HeaderText = "CreationDate";
dc.Name = "CreationDate";
dc.Visible = true;
dc.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
this.dataGridView1.Columns.Add(dc);
dc = new DataGridViewTextBoxColumn();
dc.DataPropertyName = "CreationId";
dc.HeaderText = "CreationId";
dc.Name = "CreationId";
dc.Visible = true;
dc.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
this.dataGridView1.Columns.Add(dc);
बस त्वरित टिप्पणियों - 1. नाम बदलें करने के लिए प्रयास करें ऑब्जेक्ट में ग्रिड व्यू की 'डेटाप्रोपर्टी' और 'क्रिएशनडेट' जैसी 'क्रिएशन आईडी' के रूप में 'सृजनशील' गायब है। –
ऊपर टिप्पणी केवल तभी वैध है जब 'Autogeneratecolumn को गलत पर सेट किया गया है' -> परिदृश्य –
गलत। सृजनशील xml में इस तरह लिखा गया है। आपका समाधान काम नहीं करेगा। – Mauro