2013-07-17 4 views
0

제가 아래의 방법을 이용하여 체크 박스 생성 코드 이름의 사용자 제어 : 이후 "SAT_ID_X_Y"를 사용하여 체크 박스를 참조하는 것이 가능참조 뒤에 (동적으로 생성)

for(i = 1; i<7; i++) 
    { 
     for (j = 1; j < 33; j++) 
     { 
      CheckBox a = new CheckBox(); 
      a.Name = "SAT_ID_" + i.ToString() + "_" + j.ToString(); 
      this.Sat_ID_Grid.Children.Add(a); 
      a.Style = (Style)Application.Current.FindResource("ReadOnlyCheckBox"); 
      Grid.SetRow(a, i); 
      Grid.SetColumn(a, j); 
     } 
    } 

를? 나는 그 해결책을 찾지 못하는 것 같다. 어떻게 그들을 참조 할 수 있습니까? 확인 된 상태를 변경해야합니다.

감사합니다.

답변

1

예를 들어 이름 대신 컨트롤에 대한 참조를 저장하십시오. List<CheckBox>에 있으면 색인을 사용하여 액세스 할 수 있습니다.

실제로 데이터를 제어하기 위해 data-templatingdata-binding을 사용하면 안됩니다. 완료되면 데이터에서 부울을 변경해야하며 체크 박스는 선택/선택 취소됩니다.

+0

이 목표를 달성하기 위해 데이터 템플릿 및 데이터 바인딩을 어떻게 사용할 수 있는지 자세히 설명해 주시겠습니까? 감사합니다 – user2584960

+0

@ user2584960 : 아니요. 왜 제가 개념을 설명하는 광범위한 기사에 링크되어 있다고 생각합니까? –

+0

인덱스로 컨트롤에 액세스하는 경우 OP는 사용자 정의 'List '대신 'this.Sat_ID_Grid.Children'에 인덱스를 전달할 수 있습니다. 컨트롤을 포함하는 컬렉션이 이름으로 액세스를 지원하지 않으면 컨트롤을 이름으로 액세스 할 수있는 방법이 없다고 생각합니다. 'winforms'의'Controls' 콜렉션은 이름으로 액세스를 허용하지만'wpf'의'Children'은 그렇지 않습니다. 왜 그렇게해야만하는지 모르겠습니다. –

관련 문제