为什么二级属性不会出现在BindingManagerBase中?

时间:2017-03-08 04:41:15

标签: vb.net winforms data-binding

我有一个具有二级属性的类,它使用BindingSource绑定到表单上的控件。该部分工作正常:显示数据并将更改传播到绑定对象。

现在我需要枚举所有数据绑定。我的方法是遍历BindingManagerBase的Bindings属性。不幸的是,该集合不包含二级属性。

有人可以解释为什么我看不到二级属性吗?或者,如果有一种不同的方法来迭代包括第二级属性的alle绑定,我也会很高兴。

为了说明我的问题,我创建了一个最小的例子。要使用以下代码,请将两个文本框添加到空表单,并将代码添加到表单的Load-event:

Dim bs = New BindingSource()
bs.DataSource = GetType(OuterClass)

TextBox1.DataBindings.Add("Text", bs, "OuterValue")
TextBox2.DataBindings.Add("Text", bs, "Inner.InnerValue")

Dim mgr As BindingManagerBase = BindingContext(bs)
For Each b As Binding In mgr.Bindings
     Debug.Print(b.BindingMemberInfo.BindingField)
Next

Debug.Print只打印“OuterValue”,因为这是mgr.Bindings中唯一的绑定,这就是我遇到的问题。

上述代码中使用的类定义如下:

Public Class OuterClass
    Property OuterValue As String
    Property Inner As InnterClass
End Class

Public Class InnterClass
    Property InnerValue As String
End Class

的Sascha

0 个答案:

没有答案