这实际上是一个非常简单且基本的问题,如果这是一个重复的问题(当然一定是这个问题),我深表歉意,但是我找不到任何简单的答案,最后把它扔了。
我已经在Visual Studio '17中创建了Windows窗体应用程序,创建了基于SQL Server表的数据源,并添加了绑定组合框。到目前为止,一切都很好。使用“数据源/数据集”面板中的拖放功能,我在文本框中填充了一些字段并绑定到数据。使用自动添加的数据绑定导航器,我可以在表中滚动,并且控件都将更新,因此我知道它们都已正确绑定。
现在,我要做的就是在组合框所选值更改时使控件更新。但是他们没有。从我所读的内容中,我猜测组合框需要以某种方式提醒数据源当前记录是否需要更新?如果是这样,我如何从组合框中将其更新为键值?也许这是完全错误的?我希望VS可以对绑定控件发挥作用,这样我就不必处理每个组合更改事件,查询数据库然后更新每个控件。
我认为这将是一个简单的任务;鉴于它非常基础,肯定会有直接的解释,但是讨论的问题更加复杂,或者讨论了数据绑定过程和对象的迷宫。这与我通常的.net和SQL编码有点类似,所以我希望只需要一两个简单的事件处理程序即可。
答案 0 :(得分:1)
要设置ComboBox
或ListBox
之类的列表控件作为数据索引时:
DataSource
属性设置为绑定其他控件的相同DataSource
。DisplayMember
设置为在组合框中显示,但您不需要设置ValueMember
。(DataBindings)
。您不需要设置数据绑定。示例
假设您有productsBindingSource
,这些是绑定控件的设置:
idTextBox
→数据绑定:Text
属性绑定到Id
的{{1}}属性productsBindingSource
→数据绑定:nameTextBox
属性绑定到Name
的{{1}}属性Name
→数据绑定:productsBindingSource
属性绑定到priceTextBox
的{{1}}属性然后有一个Price
作为索引,这些是Price
的设置:
productsBindingSource
属性设置为ComboBox
ComboBox
属性设置为DataSource
productsBindingSource
。您不需要设置数据绑定。然后,当您从DisplayMember
中选择一个项目时,绑定的控件将显示所选的项目,并且绑定的导航器也将移动: