(완료)WPF MVVM패턴으로 뷰 전환시 View를 캐싱(Cache) 관련 문의

안녕하세요.
이전에 WPF MVVM패턴을 이용하여 View를 전환하는 부분에 있어서 문의를 드렸습니다.

그 과정에서 정말 감사하게도 조언들을 많이 얻고 Caching 을 해서 View가 새로 생성되지 않게 해야 한다는 정보도 얻습니다.

이를 통해 한가지 예로 Factory 패턴을 이용하여 구현할 수 있다는 것을 알게되었고
작성 도중 코드작성에 어려움을 겪게 되었습니다.

제가 Factory 패턴을 잘못 사용하고 있는 것인지 아니면
Singleton 패턴으로 사용하면 조금 더 쉽고 편한지 알고 싶어서 문의드립니다.

1개의 좋아요

이전 게시물과 연계되는 질문 같습니다. 어려움을 겪고 있는 부분에 대해서 자세히 설명해 주시거나 샘플 코드를 첨부해 주시면 회원분들이 답변하는데 도움이 될 것 같습니다.

P.S. View를 캐싱해야 한다는 것은 일전에 답변드렸던 방식이 매번 View의 인스턴스가 새로 생성되는 문제점을 안고 있기 때문이었는데, View의 크기가 크지 않다면 반드시 캐싱해야 할 필요는 없습니다.

4개의 좋아요

default는 노 캐싱.
잘 생각하여 필요할 때만 캐싱.

하는게 정신 건강에 좋습니다.

2개의 좋아요

혹시 캐싱하지 않고 뷰를 전환하는 방법이 있나요? ㅠ

1개의 좋아요

네비게이션이라고 하기엔, 매번 새로 생성하는 것이지만

DataTemplate과 ViewModel의 Mapping으로 ContentPresenter를 이용하여 뷰를 전환하는 방법이 있습니다.

이 방법을 쓸 경우 뷰모델이 유지되는 반면, 뷰는 유지되지 않고 매번 새로 그려지기 때문에 뷰모델에서 뷰에 대한 충분한 정보를 저장하고 있지 않다면 그 이외의 정보들은 새로 만들어진 뷰라서 초기화되어 있습니다.

2개의 좋아요

그렇군요.
새로운 방법이어서 바로 한번 시도해보겠습니다.
제가 다시 위에서 말씀하신대로 코드 정리하여 다시 문의 드리겠습니다.!
감사합니다

3개의 좋아요

WPF MVVM패턴으로 뷰 전환시 View instance 계속 생성되는 문제 - :mortar_board: 모두의 Q&A - 닷넷데브 (dotnetdev.kr)

@ryanoh1991, @Vincent 님께서 이미 뷰는 초기화 된다고 설명해주셨네요.