我需要在组合框中显示诸如“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/