我已经在我的主网格中添加了一个GroupBox,并使用控件动态填充它。我需要在onClick事件中获得该GroupBox中的特定文本框。我能够遍历GroupBox并且很好,就像这样......
foreach (Control ctl in ((Grid)gpMccEngineProperties.Content).Children)
{
if (ctl.GetType() == typeof(TextBox))
{
TextBox textbox = (TextBox)ctl;
PropertyValue propertyValue = new PropertyValue();
propertyValue.Value = textbox.Text;
}
}
...但如果我只是想访问一个特定的TextBox,我会继续使用null值返回。这就是我试图获得它的方式......
TextBox txt = ((Grid)gpMccEngineProperties.Content).Children.OfType<TextBox>().Where(t => t.Name == "PropertyId_9") as TextBox;
...其中PropertyId_9是我动态添加到GroupBox的文本框的名称。我知道如何获得该文本框以便我能获得它的价值吗?
谢谢!
答案 0 :(得分:1)
您使用了错误的Linq方法。该代码返回一个IEnumerable的TextBoxes,而不仅仅是TextBox。使用Single或SingleOrDefault而不是Where:
TextBox txt = ((Grid)gpMccEngineProperties.Content).Children.OfType<TextBox>().Single(t => t.Name == "PropertyId_9");