假设你有以下的枚举类型
public enum Numbers {Zero = 0, One, Two};
你需要一个结构体将这些值映射到一个字符串:
public struct EntityName
{
public Numbers _num;
public string _caption;
public EntityName(Numbers type, string caption)
{
_num = type;
_caption = caption;
}
public Numbers GetNumber()
{
return _num;
}
public override string ToString()
{
return _caption;
}
}
现在返回一个对象数组,其中将所有的枚举映射为字符串:
public object[] GetNumberNameRange()
{
return new object[]
{
new EntityName(Number.Zero, "Zero is chosen"),
new EntityName(Number.One, "One is chosen"),
new EntityName(Number.Two, "Two is chosen")
};
}
使用以下内容填充您的组合框:
ComboBox numberCB = new ComboBox();
numberCB.Items.AddRange(GetNumberNameRange());
创建一个函数来获取枚举类型,以备将其传递给函数使用。
public Numbers GetConversionType()
{
EntityName type = (EntityName)numberComboBox.SelectedItem;
return type.GetNumber();
}
然后你应该没问题了 :)
SelectedValue
引发了一个InvalidOperationException
。"无法在具有空ValueMember
的ListControl
中设置SelectedValue
。" - Tyler