2010-12-19 5 views
1

에 두 개의 사용자 컨트롤의 변경 이벤트를, 내가 형 MyChart의 두 차트 컨트롤을 가지고있다. 버튼을 클릭하면 항목 소스가 새로 고침되고 새 데이터가 표시됩니다.내보기에 MVVM

보기의 ViewModel에는 각 MyChart에 대해 하나씩 MyChart 유형의 두 가지 속성이 있습니다.

Refresh 버튼을 클릭하면 뷰의 뷰 모델 RaisePropertyChanged 이벤트를 어떻게 올리나요?

+0

를 사용하여 뷰 모델에서 충분히 쉽게하여 PropertyChanged을 처리 할 수 ​​있어야합니다 실버 라이트의 전문가는 다른 사람들이 더 나은 해답을 줄 수 있지만 빠르고 쉬운 수정으로, 속성을 현재 값으로 다시 바인딩 할 수 있습니다. 재 바인딩은 아마도 'PropertyChanged' 이벤트를 유발할 것입니다. – Basic

답변

1

뷰 계층에 코딩 된 응용 프로그램 논리가 있으므로 MVVM이 올바로 구현되지 않습니다.

표준 접근법은 ViewModel에 Command 속성을 지정하고 Button.Command를 ViewModel.Command에 바인딩하는 것입니다. 이렇게하면 ViewModel에서 새로 고침을 처리하고 작성해야하는 추가 코드를 작성할 수 있습니다. 당신이 MVVM을 사용하는 경우

은보기에 표시되는 특성이 실제로 뷰 모델에 존재하는, 귀하의 질문에 대답하려면, 그래서 당신은 내가 아닌거야 this.PropertyChanged += new PropertyChangedEventHandler(ViewModel_PropertyChanged);

+0

왜 'PropertyChanged' 핸들러를 사용하면 좋을까요? 차트에 바인딩 된 각 속성에 대해 한 번씩 두 번 'PropertyChanged'명령을 두 번 실행하면됩니다. – AnthonyWJones

+0

@Anthony : 네 말이 맞아.하지만 질문의 일부는 "어떻게 뷰 모델의 RaisePropertyChanged 이벤트를 발생 시키는가"이다. –

+0

대답은 Command 구현의 Execute 메서드에서 호출하는 것입니다. – AnthonyWJones

관련 문제