2011-03-01 38 views
0

我正在嘗試使用Control.DataBindings.Add()添加到綁定中。我遇到的問題是數據成員名稱中有一段時間和空間(「Foo.Bar」)。當我嘗試添加綁定時,我將字符串「Foo.Bar」作爲參數傳遞,並且我得到一個異常「CAn not find datamember」Foo。「。Control.DataBindings.Add在數據成員名稱中添加句號

是否有需要用到的語法?。當其具有在它的週期提前通過數據成員的名字,我嘗試添加「[]」周圍的名字,但沒有骰子

感謝

+0

你是如何設法在其中有空間的會員名? – 2011-03-01 22:50:16

+0

bindingSource.Datasource是一個DataView。 DataView的Table參數中的一列中有一個名稱,其中有一個空格。 – 2011-03-01 23:00:10

回答

0

這應該這樣做:

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

仍然使用它得到一個異常。 – 2011-03-01 23:14:12

+0

你可以調試和檢查DataView列,看看你有一個問題的名稱是什麼 – 2011-03-01 23:22:07

+0

是的,如果我看看ctype(mBindingSource.DataSource,DataView).Table.Columns(9).ColumnName它是「Foo吧「。 – 2011-03-01 23:56:37

0

這應該只是工作,因爲我一直在使用.Net 2.0多年。只有我不會有小數點後的空格。但是,似乎.NET 4.0在某些情況下會以不同的方式對待它。我得到相同的參數錯誤,特別是當綁定控件駐留在用戶控件中時(但並非總是......)

有趣的是,在Net 3.5(或2.0)中運行相同的代碼時,它的行爲與預期相同,我只能使用CheckBox1.DataBindings.Add("Checked",obj,"MainBooking.JoinersAllowed")。但在Net 4.0中,它給了我很多的傷心。任何解決方案/建議都會受到歡迎。

1

經過一番周圍挖找到解決這個問題,我發現,如果你讓你的數據源(甚至一個項目)集合了.NET 4.0 implmentation將工作....

ArrayList list = new ArrayList(); 

list.Add(myDataSource); 

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

Control.DataBindings.Add(binding); 

希望它有助於......