이 방법에는 다음 구성 요소가 포함되어 있습니다
대화 상자 창의 대화 상자 서비스를 표시하는 데 도움이되는 iuiwindialogservice : a 인터페이스.
WPFUIWINDOWDIALOGSERVICE :
iuiwindowdialogservice 인터페이스는 WindowDialog 창을 생성하고 대화 상자로 표시합니다.
windowdialog : 간단한 창, 대화 상자의 내용을위한 컨테이너.
idialogrtvmhelper : 대화 상자보기 모델에서 구현 한 인터페이스는 대화 상자를 돌리고 결과를 반환하는 데 사용됩니다.
requestClosedialogeventArgs : 이벤트 매개 변수는 대화 상자 폐쇄 결과를 전달하는 데 사용됩니다.
dataTemplate : 데이터 템플릿 응용 프로그램 리소스 파일의 대화 상자보기 모델을 해당보기에 매핑합니다.
이 설정을 통해보기 모델은 iuiwindowdialogservice에서 해당 메소드를 호출하여 대화 상자 창을 시작할 수 있습니다. 그런 다음 대화 상자보기 모델은 requestClosedialog 이벤트를 지시하고 결과를 매개 변수로 전달하여 대화 상자를 표시 할 수 있습니다.
장점 :
decodia : 대화 상자의 논리와보기 모델의 데이터 및 동작을 분리하십시오. -
반복성 : 대화 상자 서비스 및 WindowDialog 창은 다른 유형의 대화 상자에서 재사용 할 수 있습니다.
Flexible :
뷰 모델은 사용자 정의 종료 동작을 정의하기 위해 idialogresultvmhelper 인터페이스를 실현할 수 있습니다. -
약한 사고 처리 : 이 방법은 약한 이벤트를 사용하여 장기 이벤트 구독과 관련된 메모리 누출을 처리합니다.
개선 제안 :
텍스트에 언급 된 작은 개선은 요청 Closedialog 이벤트를 확장하여 부울 매개 변수를 수락하여 "False"대화 결과를 지원하는 것입니다. 다음과 같이 이벤트 및 이벤트 매개 변수를 수정하여 구현할 수 있습니다.
-
위 내용은 WPF 대화 상자에 MVVM을 사용하고 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!