मुझे लगता है कि सर्कल में चारों ओर दौड़ रहा है और पिछले घंटों में ऐसा कर रहा है।डेटा GridView में सूची कैसे बाध्य करें?
मैं तारों की एक सरणी से डेटाग्रिडव्यू पॉप्युलेट करना चाहता हूं। मैंने इसे सीधे संभव नहीं पढ़ा है, और मुझे एक कस्टम प्रकार बनाने की ज़रूरत है जो स्ट्रिंग को सार्वजनिक संपत्ति के रूप में रखती है।
public class FileName
{
private string _value;
public FileName(string pValue)
{
_value = pValue;
}
public string Value
{
get
{
return _value;
}
set { _value = value; }
}
}
इस कंटेनर वर्ग है, और यह बस स्ट्रिंग के मूल्य के साथ एक संपत्ति है: तो मैं एक वर्ग बना दिया। अब मैं चाहता हूं कि स्ट्रिंग डेटाग्रिडव्यू में दिखाई दे, जब मैं एक सूची में अपने डेटासोर्स को बांधता हूं।
इसके अलावा मेरे पास यह विधि है, BindGrid() जिसे मैं डेटाग्रिडव्यू भरना चाहता हूं। संदेश यह है:
private void BindGrid()
{
gvFilesOnServer.AutoGenerateColumns = false;
//create the column programatically
DataGridViewTextBoxColumn colFileName = new DataGridViewTextBoxColumn();
DataGridViewCell cell = new DataGridViewTextBoxCell();
colFileName.CellTemplate = cell; colFileName.Name = "Value";
colFileName.HeaderText = "File Name";
colFileName.ValueType = typeof(FileName);
//add the column to the datagridview
gvFilesOnServer.Columns.Add(colFileName);
//fill the string array
string[] filelist = GetFileListOnWebServer();
//try making a List<FileName> from that array
List<FileName> filenamesList = new List<FileName>(filelist.Length);
for (int i = 0; i < filelist.Length; i++)
{
filenamesList.Add(new FileName(filelist[i].ToString()));
}
//try making a bindingsource
BindingSource bs = new BindingSource();
bs.DataSource = typeof(FileName);
foreach (FileName fn in filenamesList)
{
bs.Add(fn);
}
gvFilesOnServer.DataSource = bs;
}
अंत में, समस्या: स्ट्रिंग सरणी ठीक भरता है, सूची ठीक बनाई गई है, लेकिन मैं DataGridView में एक खाली कॉलम मिलता है। मैंने datasource = सूची <> सीधे = bindingsource की बजाय, अभी भी कुछ भी नहीं करने की कोशिश की।
मैं वास्तव में एक सलाह की सराहना करता हूं, यह मुझे पागल कर रहा है।
धन्यवाद
ध्यान देने योग्य एक बात, केवल आपके सार्वजनिक क्षेत्र में उन सार्वजनिक फ़ील्ड जो गुण हैं, वे ग्रिड में प्रस्तुत करेंगे।दूसरे शब्दों में, उन्हें {प्राप्त करना होगा; सेट; } परिभाषित किया गया है या उन्हें अनदेखा कर दिया जाएगा। – Shane