2013-04-04 6 views
6

उद्देश्य सूची को 'नाम' की सूची के रूप में देखना है।सी # क्या मैं किसी शब्दकोश में किसी ऑब्जेक्ट की विशेषता को ListControl.DisplayMember के रूप में प्रदर्शित कर सकता हूं?

class Scripts 
    { 
     public Dictionary<int, Script> scripts = new Dictionary<int, Script>(); 
     ... 
    } 

यहाँ विशेषता 'नाम' मैं के बाद हूँ:

class Script 
    { 
     public string name { get; set; } 
     ... 
    } 

और यहाँ समस्या है:

यहाँ शब्दकोश है

public partial class MainForm : Form 
{ 
    Scripts allScripts; 

    public MainForm() 
    { 
     InitializeComponent(); 
     allScripts = new Scripts(); 
     setupDataSources(); 
    } 

    private void setupDataSources() 
    { 
     BindingSource ketchup = new BindingSource(allScripts.scripts, null); 
     //THIS LINE: 
     listBoxScripts.DisplayMember = allScripts.scripts["Key"].name.ToString(); 
     listBoxScripts.ValueMember = "Key"; 
     listBoxScripts.DataSource = ketchup; 
    } 
    ... 
} 

मैं बस नहीं कर सकते सोचो कि उस लाइन को कैसे काम करें! आपकी सलाह बहुत सराहना की है!

धन्यवाद

उत्तर

3

आप Value के लिए बाध्य कर सकते हैं के रूप में तत्व शब्दकोश कास्टिंग की कोशिश करो और Script कक्षा में ToString विधि ओवरराइड।

private void setupDataSources() 
{    
    BindingSource ketchup = new BindingSource(allScripts.scripts, null); 
    listBoxScripts.DisplayMember = "Value"; 
    listBoxScripts.ValueMember = "Key"; 
    listBoxScripts.DataSource = ketchup;    
} 

स्क्रिप्ट वर्ग:

class Script 
{ 
    public string name { get; set; } 

    public override string ToString() 
    { 
     return name; 
    } 
} 
+0

बिल्कुल सही है, धन्यवाद! – StringsOnFire

0

आप वास्तविक मूल्य DisplayMember के रूप में 'नाम' की स्थापित कर रहे हैं तो जब तक आप बेतरतीब ढंग से तो आपको कभी भी एक संपत्ति के रूप में एक ही पाठ करने के लिए सेट 'नाम' में एक मूल्य मिलता है इसे प्रदर्शित करें।

आप बेहतर होगा बस कर रही:

listBoxScripts.DisplayMember = "name"; 

निश्चित रूप से?

0

एक स्क्रिप्ट वस्तु

listBoxScripts.DisplayMember = ((Script)allScripts.scripts["Key"]).name.ToString(); 
संबंधित मुद्दे

 संबंधित मुद्दे