[英]How do you bind a combobox to a Database and show values from an enum, or is this the right approach?
我在WinForm上有一些由枚举填充的组合框:
enum valueGenTypes
{
None = 0, Prefix = 1, All = 2, Abbreviation = 3, Number = 4
}
我有一个组合框,该组合框绑定到数据库中的值为0-4的字段。
我已经将组合框数据源连接到枚举:
valGenTypeID.Properties.DataSource = Enum.GetValues(typeof(valueGenTypes));
我会下拉这些值,但是它们不会保存或反映数据库中的内容。 如果这听起来很愚蠢,请原谅我,但是到目前为止,我只能将下拉列表单独链接到枚举或数据库(在组合框中具有预定义的值)。
有没有办法弥合之间的关系:
DBField = 0
ComboBox显示=“ None”
我应该使用枚举,还是正确的方法?
谢谢,
您可以将要选择的值设置为枚举值,但是您想将组合EditValue
绑定到要操作的Database字段。
有了这个:
valGenTypeID.DataSource = Enum.GetValues(typeof(valueGenTypes));
然后必须将数据绑定添加到组合框:
valGenTypeID.DataBindings.Add("SelectedItem", ClassWithValGen, "ValGenField", false, DataSourceUpdateMode.OnPropertyChanged);
我发现了我的问题。 我们将CSLA与OR映射器配合使用。 我必须在OR对象上定义并填充枚举,然后在数据源中引用OR对象(表名称)。
基本上,枚举必须位于对象级别,而不是UI(窗体级别)。
多谢您的回覆!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.