2012-02-03 3 views
0

을 사용하여 항목을 참조하는 I가 일부 사용자 지정 만든 컨트롤 : 문자열 입력에 대한순회 콤보를 통해 반사

1) 1 (텍스트 상자) 여러 문자열 입력에 대한

2) (1) (콤보)

3) 1 정수 입력 용

페이지 1 일부 처리 및 사용자 입력에 따라 임의의 수의 컨트롤이 페이지 2에 임의의 순서로 추가됩니다. 위의 컨트롤과 함께 컨트롤을 추가하는 것이 완전히 동적이기 때문에 사용자 지정 컨트롤을 상당히 일반적으로 refelection을 사용하여 참조해야합니다.

예를 들어 속성을 참조하려는 경우 컨트롤 중 하나에서 '값') 나는

c.GetType().GetProperty("Value") 

내 문제

다음 사용하십시오 위는 다음

내가 콤보 상자를 포함하는 제어을 항목에 액세스 할 필요가있다. 일반적으로 나는 다음과 같은 것을 할 것입니다 :

이것은 리플렉션을 통해 컨트롤을 참조 할 때 약간 까다로워 보입니다 .... 어떤 아이디어입니까?

참고 : 나는 당신이 개체의 Items 속성 때문에 GetProperty 반사 방법을 사용 싶어 가능하다면 ....

답변

0

반사를 계속 사용합니다. Here은 속성 정보를 동적으로 가져 오는 좋은 예이며 here은 값을 설정하는 예입니다.

+0

get 속성 메소드를 사용할 수 없습니다. c.GetType(). GetProperty ("ComboBox1"). GetProperty ("Items")가 올바르지 않습니다. – user559142

0

당신은

foreach (var cntrl in Page2.Controls.OfType<ComboBox>()) 
{ 
    // 
} 
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 });