c# - 无法在 WinForms ComboBox 中更改 DisplayMember

标签 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; }
    }

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

我错过了什么?

最佳答案

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

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

这应该可行

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

关于c# - 无法在 WinForms ComboBox 中更改 DisplayMember,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464911/

相关文章:

c# - 在 .NET 中阻止给定应用程序的多个实例?

c# - Observable.Interval 等待 Action 完成

c# - 如何修复 ListView Windows Phone 8.1 XAML 中的错误

c# - 如何将键和值写入文本文件并读回?

.net - 运行 Aero 时如何确定 ACTUAL 窗口窗体大小(包含所有非客户端元素)?

c# - 获取可以应用于类的所有属性

C# .Net 从表单帖子中读取字符串输入

c# - 处理 Task.Factory.StartNew 的错误

.net - 更改 ValidationSummary 中的字段名

c# - 在输入字段 C# 中显示标题