关于c#:Control.DataBindings.Add在数据成员名称中以句点分隔

Control.DataBindings.Add breaks with period in data member name

我正在尝试使用control.databindings.add()添加到绑定。我遇到的问题是,数据成员名称中有一个句点和空格("foo")。"酒吧"。当我试图添加绑定时,我传入字符串"foo"。bar"作为参数之一,我得到一个异常"cannot find datamember"foo."。

当数据成员名称中有句点时,是否需要使用语法来传递它?我试着在名字周围加"[]",但没有骰子。

事先谢谢。


为了找到这个问题的解决方案,我进行了大量的挖掘之后发现,如果您将数据源设置为一个集合(甚至是一个项),那么.NET 4.0实现将起作用……

1
2
3
4
5
6
7
ArrayList list = new ArrayList();

list.Add(myDataSource);

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

Control.DataBindings.Add(binding);

希望能有所帮助…


这应该是可行的,因为多年来我一直在使用.NET 2.0。只有小数点后才有空格。然而,在某些情况下,.NET 4.0似乎对此有不同的处理。我得到了与您相同的参数错误,特别是当绑定控件驻留在用户控件中时(但不总是…)

在net 3.5(或2.0)中运行相同的代码时,它的行为与预期的一样,这很有趣,我只需要使用CheckBox1.DataBindings.Add("Checked",obj,"MainBooking.JoinersAllowed")。但是在NET 4.0中,它给了我很多悲伤。欢迎提出任何解决方案/建议。


应该这样做:

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