2013-04-15 2 views
2

MVVM을 WPF와 함께 사용하고 있지만이 설계 패턴의 개념을 이해하는 데 어려움을 겪고 있습니다.MVVM Store State in C#

"myclass"개체는 응용 프로그램의 상태 (저장소에서로드 된 데이터 저장)입니다. 내 응용 프로그램의 모든 페이지에서이 데이터를 사용하며 객체는 모두간에 동기화되어야합니다.

첫 번째 방법은 싱글 톤 클래스를 사용하여이 데이터를 서비스 계층에 저장하는 것이 었습니다. 따라서 모든 ViewModel은이 서비스를 호출하여 데이터를 가져와야합니다. 어떤 수정도이 서비스를 호출해야하며 모든보기를 동기화하기 위해 이벤트가 시작됩니다.

이 데이터를 모델 레이어에 저장하는 것이 더 나은지 궁금합니다. 가장 적합한 옵션은 무엇입니까?

편집 : 추가 정보 : 저장되는 데이터는 솔루션에로드 된 프로젝트의 목록입니다. 단 하나의 솔루션 만 있어야하므로 싱글 톤으로 구현했습니다. 반드시 프로젝트를 대화식으로로드, 변경 또는 제거 할 수 있습니다.

답변

0

내가 이해할 수있는 서비스는 기능을 요구할 때 VM이 사용할 수있는 주어진 인터페이스를 구현하는 기능 (파일 시스템에 액세스하고 데이터베이스에 액세스 ...)을 추상화하는 것입니다. .

A 모델 그러나 가 (원하는 경우/INPC을 구현할 수는 없습니다) 그 비즈니스 로직

을 수행 도움이 될 것입니다 응용 프로그램 및 아무것도의 비즈니스 로직 그래서 본질적으로 당신이 완료 뭔가를 얻을 수있는 서비스를 사용 보유 모델을 응용 프로그램에 더 깊이 새겨 넣습니다.

주어진 유스 케이스의 경우 모델에 저장된 정보가 있고 INPC을 구현하면 ViewModels에 변경 사항이 자동으로 통지됩니다. 다른 ViewModel이 모델을 변경합니다.

+0

위대한 답변! 감사 – guilhermecgs