无法在WinForms ComboBox中更改DisplayMember

Pau*_*ith 1 .net c# combobox winforms

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

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

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

    internal string ShortCode
    {
        get { return Distance + Carriageway; }
    }
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么?

Hat*_*ath 5

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

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

这应该工作

ShortCode属性设置为Public或它将失败并使用GeographicAddress.ToString()