【发布时间】:2018-06-25 16:31:17
【问题描述】:
我有一个包含枚举属性的类:
public RaTypes RaBucket1Type { get; set; }
我的枚举是:
public enum RaTypes
{
Red,
Yellow
}
我能够将表单的组合框数据源绑定到枚举,这样当我单击下拉菜单时,我会看到枚举:
cmbBucket1Type.DataSource = Enum.GetValues(typeof(RaTypes));
当我加载表单时,我想用现有值填充组合框。我尝试了以下方法:
cmbBucket1Type.DisplayMember = "TradeType";
cmbBucket1Type.ValueMember = "TradeEnumID";
cmbBucket1Type.SelectedValue = EditedAlgorithm.RaBucket1Type;
但这不起作用。
另外,我也不确定是否正确实现了 ValueChanged 事件处理程序:
EditedAlgorithm.RaBucket1Type = (RaTypes)((ComboBox)sender).SelectedItem;
谁能帮我理解:
- 如何将组合框设置为当前值,以及
- 如何处理事件处理程序以便我可以将属性设置为所选择的任何内容?
谢谢 -埃德
更新 我试过了
cmbBucket1Type.SelectedIndex = cmbBucket1Type.FindString(EditedAlgorithm.RaBucket1Type.ToString());
和
cmbBucket1Type.SelectedItem = EditedAlgorithm.RaBucket1Type;
都不行。
【问题讨论】:
-
这是 Windows 窗体对吗?
-
问题当我加载表单时,我想用现有值填充组合框。 没有多大意义。在
ComboBox中,世界populate 意味着向ComboBox添加项目。您是否尝试选择加载时显示的最后一个值? -
我想:当表单加载时,添加现有类属性的值。当用户单击向下箭头时,会提供(显示)所有枚举值。
-
是的,Windows 窗体。