我在一个由枚举填充的WinForm上有一些组合框:
enum valueGenTypes
{
None = 0, Prefix = 1, All = 2, Abbreviation = 3, Number = 4
}
我有一个组合框绑定到数据库中的字段,值为0-4。
我已将组合框数据源连接到枚举:
valGenTypeID.Properties.DataSource = Enum.GetValues(typeof(valueGenTypes));
我得到了值的下拉,但是,它们不保存或反映数据库中的内容。 如果这听起来很愚蠢,请原谅我,但到目前为止看起来我只能将下拉链接到enum或DB单独链接(使用组合框中的预定义值)。
有没有办法弥合之间的关系:
DBField = 0
ComboBox显示=“无”
我应该使用枚举,还是这是正确的方法?
谢谢,
答案 0 :(得分:0)
您可以将要选择的值设置为枚举值,但是您需要将Combobox的EditValue
绑定到您想要操作的数据库字段。
答案 1 :(得分:0)
有了这个:
valGenTypeID.DataSource = Enum.GetValues(typeof(valueGenTypes));
然后你必须将数据绑定添加到组合框:
valGenTypeID.DataBindings.Add("SelectedItem", ClassWithValGen, "ValGenField", false, DataSourceUpdateMode.OnPropertyChanged);
答案 2 :(得分:0)
我发现了我的问题。我们正在使用带有OR映射器的CSLA。我必须在OR对象上定义和填充枚举,然后在数据源中引用OR对象(表名)。
基本上,枚举必须是对象级别,而不是UI(表单级别)。
感谢您的回复!