【问题标题】:WinForms bindingWinForms 绑定
【发布时间】:2011-02-15 11:23:13
【问题描述】:

我有一些控件绑定到 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

【问题讨论】:

  • 文本框 A 的 OnChanged 事件中是否有代码进行计算然后设置 B 的 Text 属性?
  • 正确..这正是我在做什么!

标签: vb.net winforms binding


【解决方案1】:

详细说说你的改动,第二个文本框是怎么绑定的?
您必须更改初始数据,而不是更改文本框 b 值。
此外,当文本框 A 失去焦点时,会引发 EndEdit 事件,我认为绑定机制会刷新文本框 B 中的值。
当您将绑定设置为文本框时,您可以控制完成哪些操作编辑。

【讨论】:

  • 我有一个具有许多属性的实体(实际上是一个 llblgen 实体)。属性 A 绑定到 TextBoxA,属性 B 绑定到 TextBoxB。我已经使用属性编辑器绑定了控件...我如何控制动作编辑...在此先感谢
  • 根据您之前的答案,您在 textboxA_OnChanged 事件上将值设置为文本框 B,但您必须更改 propertyB 并且不要触摸 textboxB 值。并通过获取 BindingSource 中的当前项目并将其转换为数据源的类型来更改您拥有的属性。
  • 完成了您的要求,即 CType(BindingSource.Current, TblTransactionsEntity).B = TextBoxA.Text & "Hello" ..同样的事情发生了(它的东东是正确的事情,直到控制失去焦点).. .....问题似乎只在控件失去焦点时发生。
  • 现在您必须使用 msdn.microsoft.com/en-us/library/… 和 RaiseListChangedEvents。此外,您还必须查看如何将绑定添加到文本框,如果您分享那部分代码会很高兴。
  • 如果你正在使用类似这样的东西 textBox.DataBindings.Add("Text",bindingSounrce,"DataMember") 还有另一种方法 .Add() 您可以在其中指定绑定何时完成(在您编辑),并且您必须暂停绑定,直到您更改 textBoxA 中的值,然后更改 textBoxB 中的值
【解决方案2】:

如果我们将控件绑定到源,那么如果源发生变化,我们可以使其值自动反映在控件中。关于你遇到的问题,最好能显示代码sn-p。

【讨论】:

    【解决方案3】:

    根据经验,如果您使用绑定源,您总是通过它对数据进行 CRUD。完成后不要忘记调用 BindingSource.EndEdit,希望对您有所帮助

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2012-11-02
      • 2011-03-30
      • 2012-06-15
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多