如何将组合框绑定到数据库并显示枚举值,或者这是正确的方法?

时间:2011-08-09 14:08:46

标签: c#

我在一个由枚举填充的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显示=“无”

我应该使用枚举,还是这是正确的方法?

谢谢,

3 个答案:

答案 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(表单级别)。

感谢您的回复!