2010-12-19 3 views
0

내보기는 ViewModel을 통해 노출 된 도메인 데이터가있는 창에서 호스팅됩니다. Window의 OnClosing 이벤트 처리기를 재정 의하여 도메인 데이터가 저장소에 커밋되었는지 확인합니다. 도메인 데이터가 커밋되면 Window가 닫히고 더 이상의 조치가 필요하지 않습니다. 그러나 데이터가 더러 우면 사용자에게 변경 내용 저장, 창 닫기 작업 취소 또는 변경 내용 취소를 묻는 MessageBox가 표시됩니다. 사용자가 SaveMommand를 저장하도록 선택한 경우 ViewModel에서 SaveCommand를 호출하여 변경 내용을 커밋하도록하려면 어떻게해야합니까?창 닫기 전 도메인 데이터 커밋

답변

0

viewmodel을 사용하는 경우 저장 명령이 이미 viewmodel에 있어야하며 단순히 호출해야합니다 ... 변경 사항을 저장하기 위해 이미 단추가 있습니까? 릴레이 명령을 사용하는 경우 이미 사용중인 commandexecute 메서드를 호출하면됩니다.

+0

ViewModel은 일반 기본 클래스를 상속하며 뷰, 모델 및 리포지토리가 생성자에 전달되어 다음에 저장됩니다. 기본 클래스 일반 ViewModelBase은 다음과 같습니다 ... 공공 추상 클래스 ViewModelBase : 알리미, IViewModel 여기서 V : 제어 여기서 M : IRepository 내가 위해 ViewModelBase 에 DataContext를 캐스팅하는 방법이 필요합니다 : R은 IDomainObject 보기 및 저장소에 모두 액세스합니다. – HighDensityx