2013-03-25 5 views
1

매우 간단해야하는 것처럼 보이는 부분에 어려움이 있습니다. Windows Forms에서 WPF로 시작합니다. 간단한 구문 문제가 있지만이 라디오 단추 문제에 대한 구체적인 예를 찾을 수없는 것 같습니다.WPF if 라디오 버튼 확인 여부에 따라

맵 선택 또는 목록을 통해 쿼리를 실행하기 위해 GUI에 라디오 버튼이 있습니다. 로드가 클릭되면지도가 선택되면 하나의 작업을 수행하고 목록에 대해 다른 작업을 수행해야합니다. 코드는 다음과 유사합니다.

private void Load_Click(object sender, RoutedEventArgs e) 
{ 
    if (rdBtnList.Checked == true) 
    { 
    //do this 
    } 

    // if rdBtnList not checked (ie if rdBtnMap is checked) 
    // do this 
} 

어떤 도움을 주시면 감사하겠습니다. 감사.

+1

그리고 오류 메시지는? – mydogisbox

+0

단추가 클릭되지 않은 경우 두 번째 "실행"을 실행하는 것이 아니라면 묻는 중입니다. D – Andy

+0

"다른 " //이 작업을 수행. 혼란을 드려 죄송합니다. – Nallware

답변

4

변경 : 당신은 당신이 이제까지 모든 것을 잊어야

I'm coming from Windows Forms and starting up with WPF

  • :

    if (rdBtnList.Checked == true) 
    

    if (rdBtnList.IsChecked == true) 
    

    에 winforms에서 배웠으며 MVVM을 채택했습니다. ViewModel을 만들고 rdBtnList.IsChecked 속성을 ViewModel의 일부 부울 값에 바인딩 한 다음 여기에서 논리를 수행해야합니다. 뷰의 코드 숨김은 애플리케이션 로직에 적합한 위치가 아닙니다.
+0

Windows Forms에 관한 모든 것을 잊기가 어렵습니다. 나는 어떤 것을 위해 Forms를 활용해야만한다. (필자의 선택에 의해서가 아닐 수도있다.) – Nallware

+1

@nallware 일단 MVVM에 모든 것이 얼마나 단순한 지 알게되면 winforms에 '돌아 가기'를 원하지 않을 것입니다. –

+0

그래, 나는 기본적으로 동의 하겠지만, 당신이 "이런 식으로해라"는 말을들을 때, 당신은 "그렇게해라". * 어깨를 으한다. – Nallware

0

신고서가 누락 되었습니까? 마찬가지로 게시 된 코드는 확인되지 않은 경우 항상 경로를 실행합니다.

private void Load_Click(object sender, RoutedEventArgs e) 
{ 
    if (rdBtnList.IsChecked == true) 
    { 
    //do this 
    return; // return, or the if not checked path below will always win. 
    } 

    // if rdBtnList not checked (ie if rdBtnMap is checked) 
    // do this 
} 

WPF에서는 IsChecked 속성을 사용해야합니다. 자세한 내용은 RadioButton Class을 참조하십시오.

1

WPF의 속성은 IsChecked은 따라서 그냥 IsChecked 속성은 WPF에서 bool? (널 (NULL) 값이) 그래서 당신이 작업을 수행하여 더 명시 적으로 여기에서 선택할 수있다

if (rdBtnList.IsChecked == true) { 
    ... 
} 

if 문장을 업데이트해야합니다라고합니다 다음

if (rdBtnList.IsChecked.HasValue && rdBtnList.IsChecked.Value) { 
    ... 
}