2009-12-29 3 views
1

모델 -보기 -보기 모델 패턴 (일명 프레젠테이션 모델)을 사용할 때보기에서 코드를 유지하려면보기 모델의 속성으로 명령을 표시하고보기의 명령에 바인딩 할 수 있습니다. 이 방법을 사용하면 내 생각에 완전히 생성 된 XAML 및 코드 숨김이 없으며 필수 생성자 호출은 InitializeComponent()이 아닙니다.MVVM 및 이벤트

이것은 ICommandSource을 구현하는 컨트롤에서 잘 작동합니다. 그러나 텍스트 상자의 텍스트가 변경 될 때 어떤 동작을 실행하려면 어떻게해야합니까? 컴파일러는 코드 숨김 파일에없는 처리기를 이벤트에 첨부하도록 설정 한 XAML을 거부합니다.

단순히 다음과 같이 뷰 모델의 명령 (또는 방법)을 실행 일부 이벤트 핸들러 쓸 수

:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    ((EditPersonViewModel) DataContext).ChangeBioCommand.Execute(e.Changes); 
} 

이 작동을하지만 난 못생긴 등을 작성해야 사실을 좋아하지 않는다 내 견해에 대한 범용 코드. 더 나은 해결책이 있습니까?

답변

2

"첨부 된 명령 동작"패턴을 사용할 수 있습니다. Marlon Grech는 좋은 구현 인 here을 보유하고 있습니다.

+0

정확히 내가 뭘 찾고 있었는지, 고마워. –