2014-06-23 2 views
1

나는 silverlight에서 일하고 있는데 나는 radiobutton을 수동으로 라디오 버튼에 주어진 3 항목 (itms 의미 3 라디오 버튼) radioatically 버튼의 체크를 설정하고 싶습니다. 나는이 같은 시도radio.IsChecked = true로 설정하는 방법; 프로그래밍 방식으로 C#을 사용하여 특정 radiobutton 프로그래밍 #

RadioButton radio = new RadioButton(); 

이 라디오 버튼은 "항목 (라디오 버튼)를 포함한다고 가정하고 내가 코드를하려고 할 때 아래의 코드는 아래의 마지막 항목을 확인합니다 (3 개 항목 중) 두 번째 항목을 확인합니다.

radio.Loaded += (p, q) => 
{  
     radio.IsChecked = true; 
}; 

버튼을 만드는 방법은 다음과 같습니다.

foreach (String item in param.Component.Attributes[0].Item) 
      { 
       radio = new RadioButton() 
       { 
        Content = item, 
        GroupName = "MyRadioButtonGroup", 
        Tag = tg 

       }; 
radio.Checked += (o, e) => 
       { 
        //Do something     
       }; 

       sp.Children.Add(radio); 
       count++; tg++;    
      } 

왜 마지막 항목을 확인합니까? 프로그래밍 방식으로 Silverlight를 사용하여 C# 코드에서 두 번째 항목을 확인하는 방법? 텍스트 블록에 itmes를 인쇄하려고하면 라디오 버튼을 클릭하기 전에 버튼을 클릭하기 때문에 프로그램 시작 후 (버튼 클릭 이전) 라디오 버튼을 초기화하려고하므로 아무 것도 볼 수 없습니다. 버튼을 클릭하지만 빈 공간 대신 ​​클릭하기 전에 표시 할 내용이 필요함)

+0

내가 초기화 한 후에 "IsChecked"값을 변경하면 라디오 버튼이 시각적으로 변경되도록하기 위해 다시 게시해야합니다 (사과 한 경우). 추 신 : jQuery를 사용하면 기꺼이 사용하는 것이 훨씬 간단합니다. – EvilBeer

+0

@EvilBeer 내가 왜 그렇게하려고하는지 편집을 참조하십시오. – Sss

+0

jQuery/Javascript를 사용 하시겠습니까? – EvilBeer

답변

2

질문에 대한 대답은 코드에 radio.IsChecked=true을 설정하여 RadioButton을 선택하는 것입니다.

이 문제를 해결하는 한 가지 방법은 두 번째 라디오 버튼이 추가 될 때 IsChecked = true로 설정하는 것입니다. 코드가 foreach 루프에 있기 때문에 count 변수가 작동해야합니다.

foreach (String item in param.Component.Attributes[0].Item) 
      { 
       radio = new RadioButton() 
       { 
        Content = item, 
        GroupName = "MyRadioButtonGroup", 
        Tag = tg 

       }; 
radio.Checked += (o, e) => 
       { 
        //Do something     
       }; 

       sp.Children.Add(radio); 
       count++; tg++; 
       if (count == 2){ 
       radio.IsChecked=true; 
       } 
      } 

또는 이러한 접근 방식 모두가 대부분의 실버 라이트 애플리케이션에서 일반적인 데이터 바인딩 접근 방식과 잘 메쉬하지 않는 작업하는 동안 당신은 루프

for (int i = 0; i < param.Component.Attributes[0].Item.Count ; i++) 
     { 

     } 


if (i== 2){ 
    radio.IsChecked=true; 
    } 

에 대한 귀하의 foreach 루프를 변경할 수 있습니다. 선택한 항목의 초기 상태는 실제로 상태 변수에 저장되어야합니다.

관련 문제