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