더 복잡한 MVVM 시나리오의 좋은 예를 찾고 있습니다 ...하나의보기에서보기 모델/엔티티 또는 여러보기 모델을 여러 번 볼 수 있습니까?
플레이어의 컬렉션이있는 PlayersViewModel이 하나 있다고 가정합니다. 한보기에서 나는 플레이어 컬렉션을보고 추가/편집/삭제합니다.
다른보기는 Players 팀을 지정하는 팀입니다. 그래서 또 다른 뷰 모델 - TeamsViewModel이 있습니다. 이보기에는 또한 플레이어 모음이 필요합니다. 두 플레이어 목록을 동기화하여 유지하면 두보기 모두에 변경 사항이 표시됩니다.
나는 여러 옵션을 참조하십시오
- (TeamsViewModel에 대한 참조뿐만 아니라) 내 팀보기로 PlayersViewModel에 대한 참조를 추가하고
- 가 있나요 두보기에 PlayersViewModel.Players 모음을 사용하여 같은 기본 컬렉션 인스턴스를 참조하는 다른 컬렉션
- 컬렉션을 반환하는 Player.All과 같은 Player 모델에 정적 속성을 만들고 Player는 Player.Add (player), Player.Delete 등으로 뷰 관리자를 관리합니다. PlayersViewModel.AddPlayer (player) 대신에?
저는 현재 팀 전체보기와 두 가지보기 모드를 호출 할 수 있도록 앱 전체 리소스를 사용하는 경향이 있습니다. 그렇다면 선택된 Players를 My TeamsViewModel의 PlayersViewModel.Players 컬렉션에서 어떻게 사용하여 추가 할 수 있습니까?
도움말주세요.
조엘 감사합니다. 나는이 방향으로 나아가고 있으며, 뷰 모델을 제 견해에 열심히 그리고 빠르게 매핑하고있는 것처럼 보입니다. 필자의 뷰 모델은 꽤 크다. 따라서 필자는 현재의 Players 컬렉션과 같은 지능형 데이터 저장소와 같은 뷰 모델과 엔티티 프레임 워크 객체와 함께 다른 서비스가 필요하다. 그것은 EF가 나를 위해 무엇을해야하는지에 관해 어딘가에서 여기에서 두 배가되는 것처럼 보일지라도. – DaveO
ViewModel에서 필요로하는 클래스에 액세스 할 수있는 서비스 계층을 추가하는 것이 좋습니다. 서비스는 DI로 셋업 할 수있는 EF에 대한 저장소 패턴을 사용할 수 있으며 위에서 논의한 다른 방법 중 하나를 사용할 수 있습니다. VM이 모든 EF 작업을 수행하면 안되며, VM이 수행하는 계층과 통신해야합니다. –