2010-09-08 84 views
0

我在设置ComboBox的ValueMember属性时遇到了一些问题。C#combobox ValueMember

comboBox1.ValueMember = "Code";打破我的代码。

这里是我的代码:

Form1.cs中:

private void Form1_Load(object sender, EventArgs e) { 
    ... 
    ...  
    MAPList MAP = new MAPList(); 
    comboBox1.DataSource = MAP.All; 
    comboBox1.ValueMember = "Code"; 
    ... 
    ... 
} 

MAPList.cs:

public class MAPList { 
    public readonly List<MAP> All; 

    public MAPList() { 
     All = new List<MAP>(); 

     var MapData = // Getting map data 

     foreach(MAP m in MapData) { 
      All.Add(new Map(m.Name, m.Code)); 
     } 
    } 
} 

MAP.cs:

public class MAP { 
    public readonly string Name; 
    public readonly string Code; 

    public RadioCode(string name, string code) { 
     Name = name; 
     Code = code; 
    } 

    public override string ToString() { 
     return String.Format("{0}: {1}", Name, Code); 
    } 
} 

回答

3

尝试转换代码物业,而不是一个成员,然后结合它

+0

哇...这是奇怪! Code作为一个公共只读成员,为什么它不工作? – Moon 2010-09-08 04:25:18

+0

@Ruby ComboBox使用反射从底层对象获取值。在这个过程中,它正在寻找属性而不是字段 – 2010-09-08 04:30:47