2016-11-26 2 views
0

중첩 ViewModels 및 뷰를 지원하는 솔루션/mvvm 프레임 워크를 찾고 있습니다. 내 말은있다 : 각 뷰 모델은 BaseViewModel에서 파생중첩 된 ViewModels 중첩 된 뷰

  1. ViewModels은 (부모의 ViewModel 안에 중첩)
  2. 각 뷰 모델은 해당보기
  3. 조회수가 하위 ViewModels있는 타입 BaseViewModel의있는 특성을 가지고 해당 ViewModel의 하위 ViewModel에 해당하는 ContentControl (템플릿보기를 표시 할 수있는 컨트롤)이 있습니다.
  4. 이제 ViewModel의 인스턴스를 만들 때 구체적인 하위 ViewModels의 적절한 인스턴스를 전달해야합니다. 뷰는 ViewModels 구조체를 기반으로 자동으로 확인되고 중첩됩니다 (어떻게 든).

어떻게 든을 정의하지 않습니다. 이유는 많은 방법이있을 수 있기 때문입니다.

제 아이디어가 분명하길 바랍니다. 이 방식을 사용하면 ViewModel 및 뷰를 쉽고 동적으로 생성 할 수 있습니다. ViewModel의 트리를 XML로 작성하고이를 바탕으로 새로운 기능을 생성하십시오.

질문은 다음과 같습니다

  1. 어떤 MVVM 프레임 워크는 Xamarin.Forms에 대한 이러한 접근 방식을 지원 (mvvmcross, catel)이 있습니까?
  2. ViewModels의 트리를 XML, 데이터베이스 테이블에 어떻게 저장 하시겠습니까?
  3. ViewModels의 인스턴스를 어떻게 만들겠습니까? deserialization, dependency injection, ...?
  4. 보기를 작성하고 해결하는 방법 (프레임 워크에서 지원하지 않는 경우)?

답변

1

내가 물었다 :

  1. 나는 그런 접근 방식을 지원하는 모든 MVVM 프레임 워크가 있는지 모른다. 아마 Catel v5가 이것을 지원할 것이지만 나는 이것을 체크하지 않았다. 나는 사용자 정의 솔루션을 사용합니다.
  2. 내 솔루션에서는 부모/자식 구조의 단일 데이터베이스 테이블에 ViewModels 정의를 저장합니다.
  3. ViewModel 인스턴스는 데이터베이스 테이블의 정의를 사용하여 사용자 정의 팩토리에서 작성됩니다.
  4. 뷰는 ValueConverters를 사용하여 만듭니다. 각 뷰는 ViewModels 구조체를 기반으로 생성 된 바인딩을 가지고 있기 때문에 가능합니다.

위의 답변 옆에 프리즘을 사용할 것을 제안 할 수 있습니다. 저에게있어 몇 가지 단점이 있지만 그러한 접근에서 가장 좋은 틀입니다.

0

예! 그것은 다른 옵션에 비교하면 어떻게 http://www.michaelridland.com/xamarin/freshmvvm-quick-start-guide/

을 :

FreshMvvM : https://github.com/rid00z/FreshMvvm

빠른 시작 가이드 당신이 찾고있는 것을 정확하게 맞는 마음에 Xamarin.Forms로 생성되는 MVVM 프레임 워크가있다 ?

It's super light and super simple 
It's specifically designed for Xamarin.Forms 
Designed to be easy to learn and develop (great when you are not ready for RxUI) 
Uses a Convention over Configuration 

특징 당신은 중첩 할 수 또는 당신이 원하는만큼 많은 ViewModels을 유도

PageModel to PageModel Navigation 
Automatic wiring of BindingContext 
Automatic wiring of Page events (eg. appearing) 
Basic methods (with values) on PageModel (init, reverseinit) 
Built in IOC Container 
PageModel Constructor Injection 
Basic methods available in Model, like Alert 
Built in Navigation types for SimpleNavigation, Tabbed and MasterDetail 

는 (우리의 경우 우리는 BaseViewModel있다). 우리는 FreshMvvM을 시동시에 사용하고 있으며, 우리가 필요로하는 모든 것에 적합하도록 전투 테스트를 거쳤습니다. 나는이 질문에 대한 경험을 공유 할 수 있습니다 약간의 시간 후

+0

응답 해 주셔서 감사합니다. FreshMvvm이 먼저 ViewModel을 지원합니까 (ViewModel을 통한 탐색)? – raV720

+0

예, FreshMvvM은 ViewModel First 탐색을 지원합니다. 실제로, 탐색은 ViewModel을 통해 이루어져야합니다. – Raven

+0

재미있는 대안은 중첩 된 사용자 컨트롤 (주입 된 모델 포함)을 지원하는 Catel 외에 다른 mvvm 프레임 워크/툴킷을 인식하지 못했습니다. Catel은 Xamarin Forms (아직)를 지원하지 않기 때문에 좋은 대안이 아니므로 지금은 다른 것을 필요로 할 것입니다. 해당 기능에 대한 샘플은 어디에서 찾을 수 있습니까? 특히 부모/자식 관계는 나를 위해 재미 있어야합니다. –