无法在WinForms ComboBox中更改DisplayMember

时间:2009-01-21 11:28:27

标签: c# .net winforms combobox

我正在尝试使用以下代码更改组合框的显示方式:

    private void UpdateMapRoadPointList(List<GeographicAddress> plstMapRoadPointList)
    {
        cboFind.DataSource = plstMapRoadPointList;
        cboFind.DisplayMember = "ShortCode";
        cboFind.ValueMember = "";
    }

GeographicAddress是一个具有ShortCode属性的类,该属性返回一个字符串:

    internal string ShortCode
    {
        get { return Distance + Carriageway; }
    }

但是,在使用应用程序时,disaplyed值仍然来自GeographicAddress.ToString()。在调试时,似乎cboFind.DisplayMember =“ShortCode”没有效果! DisplayMember在执行该行之前和之后都是“”!

我错过了什么?

1 个答案:

答案 0 :(得分:5)

public string ShortCode
    {
        get { return Distance + Carriageway; }
    }

private void UpdateMapRoadPointList(List<GeographicAddress> plstMapRoadPointList)
    {
        cboFind.DataSource = plstMapRoadPointList;
        cboFind.DisplayMember = "ShortCode";
    }

这应该有效

ShortCode属性设置为Public,否则将失败并使用GeographicAddress.ToString()