2010-08-21 4 views
2

WPVM 달력을 MVVM보기 모델에 연결합니다. MVVM ICommand 객체에 날짜 선택 및 월 변경 사항을 바인딩하는 방법을 모르겠습니다. 예를 들어 선택한 날짜 변경을 처리하려면 XAML에서 내 뷰 모델의 적절한 명령 속성에 바인딩 할 개체는 무엇입니까?WPF Calendar : MVVM 명령에 바인딩 하시겠습니까?

거의 알 수 있듯이 코드 숨김에서 이벤트 처리가 얽혀 있습니다. 예를 들어, 날짜 선택 변경을 감지하는 유일한 방법은 SelectedDatesChanged 이벤트 처리기를 작성하는 것입니다. 나는이 같은 이벤트 핸들러에서 내보기 모델의 명령 속성을 호출 할 수 있습니다

private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) 
{ 
    var viewModel = (CalendarViewModel) DataContext; 
    viewModel.GetDateNotes.Execute(); 
} 

하지만 가능한 더 나은 방법이없는 경우를 제외하고 나는, 그 접근 방식에 코드 냄새를 감지. 누구든지 XAML에서 직접 MVVM 명령에 WPF 달력을 바인딩하는 방법을 말해 줄 수 있습니까? 제가 취하는 것보다 더 나은 접근법이 있습니까? 당신의 도움을 주셔서 감사합니다.

답변

1

캘린더에 바인딩되어 있고 PropertyChanged를 발생시키는 VM에 DateTime 속성이 없습니까? 그렇다면 뷰 내부에서 변경된 속성을 보거나 설정자가 코드를 작성하여 뷰의 값이 변경된 시점을 알 수 없습니까?

+2

물론! 나는 나무에 숲을 볼 수 없었던 명령에 너무 감쌌다. 감사! –