c# - 如何在显示更用户友好的值的同时将实际的基础 DB 值存储在组合框中?

标签 c# winforms combobox

我需要在组合框中显示诸如“Surreptitiously”和“Discreetly”之类的值,但此后能够根据这些词(例如“S”和“D”)的基础数据库值设置组合框的 SelectedItem。

我想我可以以某种方式使用组合框的 DisplayMember 和 ValueMember 属性,但是我可以随后用实际的(valuemember)值做一些类似于以下的事情吗:

comboBoxAdverbs.SelectedIndex = comboBoxAdverbs.Items.IndexOf(weirdAdverbs[CURRENT_ADVERB]);

由于“weirdAdverbs[CURRENT_ADVERB]”包含“S”和“D”等值,因此当组合框包含值“Surreptitiously”和“Discreetly”时,它当然不会找到并设置 SelectedIndex

如果我将组合框 Item Tag 值设置为“S”和“D”(假设这是可能的),我可以遍历这些值,但我希望有一种类似于“IndexOf()"上面。

最佳答案

我为此使用了一个模板类,它非常方便。组合框将显示您想要的任何文本,您可以用它存储一个值。

    public class cboItem<T>
{
    public cboItem(string name, T value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public T Value { get; set; }
    public override string ToString()
    {
        return Name == null ? "" : Name;
    }
}

关于c# - 如何在显示更用户友好的值的同时将实际的基础 DB 值存储在组合框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514640/

相关文章:

c# - 有什么是用 C++ 能做而 C# 不能做的吗?

c# - DataGridView 不在 ToolStripDropDown 中显示数据

c# - PictureBox 大小不正确

javascript - 从单个下拉列表中启用选项卡

c# - 将自定义对象列表绑定(bind)到 Combobox(DisplayMember 不工作)

c# - List<int> test = {1, 2, 3} - 它是功能还是错误?

c# - 是否有可能在 .NET (C#) 中以编程方式从头开始创建 *.config 文件?

c# - 打开一个excel文件并添加单元格值

c# - 上下文菜单父级?

c# - 组合框下拉列表