WinForms绑定

时间:2010-05-04 13:19:33

标签: vb.net winforms binding

我有一些绑定到BindingSource控件的控件。

我希望在一个控件中值更改时进行计算,并将结果设置在另一个控件上。

我是否更新了属性所绑定的文本框,或者我是否更新了将更新控件的基础实体(我希望)?

当我更改组合框A(OnPropertyChange)时,文本框B将使用新的计算结果进行更新。这工作正常,但我注意到当我离开组合框A时它恢复到原来的值。这里发生了什么!

Private Sub ComboBoxEditCostCode_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxEditCostCode.EditValueChanged
    Select Case ComboBoxEditCostCode.EditValue
        Case "7" 
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "7-is here" 

        Case "2" 
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "2-is here" 

        Case Else
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "7-is here"
    End Select
End Sub

3 个答案:

答案 0 :(得分:1)

如果我们将控件绑定到源,那么如果源更改,我们可以使其值自动反映在控件中。关于您面临的问题,如果您显示代码段会更好。

答案 1 :(得分:0)

详细了解您的更改,第二个文本框是如何绑定的? 您必须更改初始数据,而不是更改文本框b值 此外,当文本框A丢失时,焦点会引发EndEdit事件,我认为绑定机制会刷新文本框B中的值。
在将绑定设置为文本框时,可以控制编辑操作。

答案 2 :(得分:0)

作为经验法则,如果您使用的是绑定源,则始终通过它来CRUD数据。完成后别忘了调用BindingSource.EndEdit,希望这有帮助