我有一些自定义控件:
1)1用于字符串输入(文本框)
2)1用于多个字符串输入(组合框)
3)1表示整数输入
第1页进行一些处理,根据用户输入,任何数量的控件都以任何顺序添加到第2页。由于上面的控件的添加以及它们的排序是完全动态的,我不得不通常使用refelection来引用自定义控件:
例如,如果我想在上面的一个控件中引用属性(例如'Value'),我使用以下
c.GetType().GetProperty("Value")
我的问题如下:
我需要访问包含组合框的控件中的项。通常我会做类似的事情:
foreach(string item in ComboBox1.items){}
当通过反射引用控件时,这似乎有点棘手....任何想法?
注意:如果可能,我想继续使用反射....
答案 0 :(得分:0)
答案 1 :(得分:0)
你可以尝试
foreach (var cntrl in Page2.Controls.OfType<ComboBox>())
{
//
}
答案 2 :(得分:0)
要获得该属性,您可以执行以下操作,但不确定这是否属于您 正在寻找尝试。
PropertyInfo prop = controlType.GetProperty(propertyName);// Gets Items
MethodInfo methInfo = prop.PropertyType.GetMethod(methodName); // gets the method ('Items.Add')
object obj = prop.GetValue(newControl, null); // gets the current 'Items
methInfo.Invoke(prop.GetValue(newControl, null), new object[] { newValue });