1
我想從其中只包含文本框如下集合的TextBox
控制:演員TextBox控件
IEnumerable<TextBox> tbx = this.grd.Children.OfType<TextBox>();
然後我試圖讓具有名稱TextBox
控制「tbxLink」 如下:
TextBox txtBox = (TextBox)tbx.Select(x => x.Name == "tbxLink");
但它給了我在運行時此錯誤消息:
Unable to cast object of type 'WhereSelectEnumerableIterator`2[System.Windows.Controls.TextBox,System.Boolean]' to type 'System.Windows.Controls.TextBox'.
我在這裏錯過了什麼?
編輯:
一些更多的嘗試多用一些錯誤信息:
使用.Where
:
Unable to cast object of type 'WhereEnumerableIterator`1[System.Windows.Controls.TextBox]' to type 'System.Windows.Controls.TextBox'.
使用.Single
:
Sequence contains no matching element
使用.First
:
Sequence contains no matching element
使用FirstOrDefault
或SingleOrDefault
使得TBX變量null
我忘了提及我也使用了'Where'子句,但是這也失敗了。有多個文本框,但名稱是相同的。那麼SingleOrDefault也會如此工作,或者只有一個文本框? – Yustme 2012-03-03 11:18:22
@Yustme:如果有多個同名的文本框,爲什麼期望能夠分配給一個'TextBox'變量? – 2012-03-03 11:19:36
那你要不要tbx.First(x => x.Name ==「tbxLink」)? – Phil 2012-03-03 11:20:55