Control.DataBindings.Add在数据成员名称中以句点分隔

时间:2011-03-01 22:46:38

标签: c# .net vb.net data-binding

我正在尝试使用Control.DataBindings.Add()添加到绑定。我遇到的问题是数据成员名称中有一个句点和空格(“Foo.Bar”)。当我尝试添加绑定时,我将字符串“Foo.Bar”作为参数之一传递,我得到一个异常“CAn not find datamember”Foo。“。

是否有一种语法,我需要使用它来传递datamember名称?我尝试在名称周围添加“[]”,但没有骰子。

提前致谢。

3 个答案:

答案 0 :(得分:1)

经过深入挖掘才找到解决这个问题的方法后,我发现如果你把你的DataSource作为一个集合(甚至是一个项目),那么.Net 4.0的实现就可以了....

ArrayList list = new ArrayList();

list.Add(myDataSource);

Binding binding = new Binding(PropertyName, list, "Dotted.Path.Name");

Control.DataBindings.Add(binding);

希望它有所帮助......

答案 1 :(得分:0)

这应该这样做:

Control.DataBindings.Add(new Binding("Text", ds,"Foo. Bar"));

答案 2 :(得分:0)

这应该可行,因为我多年来一直使用.Net 2.0。只有小数点后我才会有空格。但是,似乎.Net 4.0在某些情况下对此有不同的处理方式。我得到了与你所做的相同的Argument错误,尤其是绑定控件驻留在用户控件内时(但并非总是......)

在Net 3.5(或2.0)中运行相同的代码时,它很有趣,它的行为符合预期,我可以使用CheckBox1.DataBindings.Add("Checked",obj,"MainBooking.JoinersAllowed")。但在Net 4.0中它给了我很多悲伤。欢迎任何解决方案/建议。