मैं एक शब्दकोश को डेटाग्रिडव्यू में बाँधना चाहता था। दुर्भाग्य से शब्दकोश आवश्यक इंटरफ़ेस को लागू नहीं करता है, इसलिए इसके बजाय एक सूची बनाई गई>।
अनिवार्य रूप से मैं चाहता हूं कि यह डेटाग्रेडव्यूकॉम्बोक्सॉक्लेम्स के साथ डेटाग्रेडव्यू के लिए बाध्य हो। स्तंभ 1 के साथ कुंजी और स्तंभ 2 मान को पकड़े हुए।
मैंने "विविधताओं का भार उठाने की कोशिश की है, लेकिन मैं यह अधिकार प्राप्त कर सकता हूं।" मैंने स्तंभों पर, अलग-अलग कक्षों में और स्वयं ही डेटाग्रिडव्यू से जुड़ने का प्रयास किया है। क्या कोई जानता है कि यह कैसे करना है?
संपादित करें: यह स्पष्ट करने के लिए कि वस्तु के लिए बाध्य नहीं है कि समस्या है। यह सूची ठीक करने के लिए बाध्यकारी है, उदाहरण के लिए, यदि मेरे पास सूची में 4 आइटम हैं, तो 4 पंक्तियों को जोड़ा जाता है, हालांकि मान रिक्त हैं। यह उदाहरण कोड है:
additionalMetadata1.dataGridView1.DataSource = animal.AdditionalMetaData;
foreach (DataGridViewRow row in additionalMetadata1.dataGridView1.Rows)
{
DataGridViewCustomComboCell cell = row.Cells[0] as DataGridViewCustomComboCell;
cell.DataSource = animal.AdditionalMetaData;
((DataGridViewCustomComboColumn)additionalMetadata1.dataGridView1.Columns[0]).DisplayMember = "Key";
((DataGridViewCustomComboColumn)additionalMetadata1.dataGridView1.Columns[0]).ValueMember = "Key";
((DataGridViewCustomComboColumn)additionalMetadata1.dataGridView1.Columns[0]).DataPropertyName = "Key";
}
धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 4आप निम्नलिखित Linq के साथ अपने शब्दकोश का उपयोग कर सकते हैं:
dataGridView.DataSource = (from d in dictionary
orderby d.Value
select new
{
d.Key,
d.Value
}).ToList();
यह एक अनाम ऑब्जेक्ट बनाएगा जो आपकी कुंजी और मान को गुणों के रूप में रखेगा। ध्यान रखें कि डिक्शनरी किसी विशेष क्रम में डिफ़ॉल्ट रूप से नहीं है।