मेरे पास डेटाग्रिड व्यू नियंत्रण है और मैं इसे डेटा के साथ पॉप्युलेट करना चाहता हूं।DataGridViewColumn.DataPropertyName प्रॉपर्टी
मैं डेटास्रोत संपत्ति
// dgvDealAsset is DataGridView
private void DealAssetListControl_Load(object sender, EventArgs e)
{
dgvDealAssets.AutoGenerateColumns = false;
dgvDealAssets.DataSource = DealAssetList.Instance.Values.ToList();
}
अब समस्या नंबर एक का उपयोग करें। मेरे संग्रह की कक्षा में केवल सरल प्रकार नहीं हैं जिन्हें मैं DataPropertyName का उपयोग करके कॉलम पर मैप कर सकता हूं। यह वह वर्ग है जो संग्रह में निहित है।
class MyClass
{
public String Name;
MyOtherClass otherclass;
}
class MyOtherClass
{
public String Name;
}
अब मैं कॉलम
col1.DataPropertyName = "Name" // Ok
col2.DataPropertyName = "otherclass" // Not OK - I will have empty cell
को MyClass के गुणों बाध्यकारी हूँ समस्या यह है कि मैं otherclass.Name क्षेत्र प्रदर्शित करना चाहते हैं। लेकिन अगर मैं
col2.DataPropertyName = "otherclass.Name"
लिखने का प्रयास करता हूं तो मुझे खाली सेल मिलता है।
मैं मैन्युअल स्तंभ
private void DealAssetListControl_Load(object sender, EventArgs e)
{
dgvDealAssets.AutoGenerateColumns = false;
dgvDealAssets.DataSource = DealAssetList.Instance.Values.ToList();
// iterate through rows and set the column manually
foreach (DataGridViewRow row in dgvDealAssets.Rows)
{
row.Cells["Column2"].Value = ((DealAsset)row.DataBoundItem).otherclass.Name;
}
सेट करने की कोशिश की लेकिन इस foreach चक्र (2k तत्वों) को पूरा करने के बारे में मिनट लगता है। इस समस्या को हल कैसे करें?
नहीं कर सकता। यह तृतीय-पक्ष लाइब्रेरी ऑब्जेक्ट है। MyOtherClass सील नहीं है –
हैं तो यह प्रयास करें: वर्ग MyOtherClass2: MyOtherClass { सार्वजनिक स्ट्रिंग toString() { /* वापसी स्ट्रिंग यहाँ जो आप ग्रिड */ } में दिखाना चाहते हैं } – user218447