Cześć,
piszę swoją tak naprawdę pierwszą aplikację z wykorzystaniem WPF i wzorca MVVM no i natknąłem się na pewien problem.
W skrócie, staram się zachować w aplikacji założenia wzorca MVVM, ale nie wykorzystuję żadnych wspomagających bibliotek jak Prism lub podobne. Chcę najpierw zrozumieć jak to działa na "surowo". Aplikacja posiada okno główne które zawiera element TabControl, zawartość każdej zakładki to osobny UserControl, każdy posiada swój ViewModel. Odpowiednie properties są zbindowane z controlkami w swoich View, przyciski działają jak trzeba. Jednak gdy wypełniam potrzebne TextBoxy w zakładce w czasie działania programu, przechodzę na kolejną zakładkę i wracam do poprzedniej to zawartość kontrolek jest pusta, tzn. przy każdym włączeniu zakładki tworzona jest nowa instancja ViewModelu. Ja jednak potrzebuję mieć te dane widoczne w zakładkach w czasie całego działania programu.
Póki co poradziłem sobie tworząc singletona, który przetrzymuje potrzebne dane a każdy ViewModel w konstruktorze wypełnia nimi odpowiednie TextBoxy. W zasadzie każda zakładka korzysta z tych samych danych, więc jakoś to działa. Druga sprawa jest taka, że nie potrzebuję żadnej bazy danych bo aplikacja ma przetworzyć wprowadzone przez użytkownika dane i na ich podstawie wygenerować plik.
Szukałem rozwiązania na Stacku ale jedyne co znalazłem to post z 2012 roku lub posty odwołujące się do niego, w każdym razie wszystkie kierują do tego artykułu:wyłączenie wirtualizacji zakładek. Jest to dość skomplikowane, czy ktoś ma może lepszy, nowszy sposób, bez wspomagających bibliotek typu Prism, który rozwiązałby ten problem?