这有点奇怪,但我现在已经挣了几个小时,我无法理解发生了什么.
我想知道是否有其他人遇到过这个问题,也许可以解释一下.我正在构建一个简单的Winforms应用程序,并尝试使用许多内置控件.
基本上,我有一个带有用户控件和一些数据捕获字段的表单.3个字段是下拉列表,在用户控件上我有一个bindingSource控件,它直接绑定到Product类.
在运行时,我向BindingSource提供了Product类的实例,该类包含一个属性ProductType
.为简单起见,我还向List
Product Class 添加了一个ProductTypes,它在查询时加载自身,这意味着我可以使用相同的bindingSource并选择ProductTypes
Data Member作为下拉列表的Datasource.
运行表单后,列表绑定完美,我可以看到列出的所有产品类型,我可以选择一个和选项卡或单击下一个字段.但显然所选值不会绑定,因为我没有为下拉列表选择任何绑定-RelectedValue,只选择数据源.一旦我确保下拉通过绑定到Bindings-SelectedValue来修改Product的实例,然后运行表单,列表仍然会完美填充,只要我不这样做,我就可以通过控件进行选项卡从下拉列表中进行选择.如果我从下拉列表中进行选择,则下拉列表会保持焦点.我无法选择爱情或金钱,甚至无法点击表单上的取消按钮,右上方的关闭按钮是我可以点击的唯一按钮,它可以点击任何其他字段或下拉列表.选择完成后,这会影响所有三个下拉列表.
任何人都有任何想法,我错过了什么?
我尝试改变一些事情并通过向下拉值提供一个字符串[]而不是一个对象的成员来取得一些成功.这似乎工作,但失败使用数据绑定的对象不是吗?
任何帮助赞赏!
只是在这里猜测,因为我没有时间设置测试并立即确认,但你在做任何验证吗?我似乎记得,如果内容不验证,数据绑定控件将不允许您离开.即使您没有明确,也可以尝试将CausesValidation设置为False以查看是否在幕后进行任何类型的验证,这可能至少会给您一个提示.