2012-11-23 4 views
1

DocumentViewModel 클래스 (GalaSoft.MVVMLIGHT.ViewModelBase에서 상속 한 PaneViewModel 클래스에서 상속)가있는 작은 그래픽 편집기를 만들고 있습니다. DocumentViewModel은 한 이미지를 나타냅니다 (응용 프로그램에서 한 번에 몇 개의 이미지를 처리 ​​할 수 ​​있으므로 DocumentViewModel의 컬렉션을 갖기로 결정했습니다). 프로젝트를 저장할 때 DocumentViewModel을 직렬화하고 프로젝트를로드 할 때 deserialize하고 싶습니다. 그러나 응용 프로그램을 직렬화하는 동안 예외를 throw합니다 ("GalaSoft.MvvmLight.ViewModelBase serializable로 표시되어 있지 않습니다 때문에이 작업을 수행 할 수 없습니다.이 문제에 대한 해결 방법이 있습니까?로드/저장 메커니즘으로 serialization을 사용하여 올바른지?MVVM Light - ViewModel Serialization

+0

왜 뷰 모델을 직렬화해야합니까? – syned

+0

문서 - 공간 영역 (writablebitmap이 클래스로 래핑 됨), 제목, 기록, 레이어 및이 문서를 저장 (프로젝트 파일로 직렬화) 및로드 (비 직렬화)하고 싶습니다. – fex

+4

MVVM for Model - View - ViewModel Model 및 ViewModel의 데이터는 Model과 View 사이의 레이어입니다. 데이터 (모델)가 무엇인지 생각하고이를 직렬화 및 비 직렬화해야합니다. – syned

답변

2

MVVM Light를 사용하여 응용 프로그램 상태를 직렬화하려는 것처럼 들리면 MVVM Light를 사용하여이 작업을 수행하려는 경우 뷰 모드에 주입되는 응용 프로그램 상태 서비스/개체를 만듭니다.이를 사용하여 응용 프로그램 상태를 관리합니다 (어떤 viewmodel이 활성인지, 등).

응용 프로그램 상태 저장 서비스가 응용 프로그램이 저장 중임을 감지하면 저장합니다. 시작될 때 직렬화 된 개체를 확인한 후 응용 프로그램 상태 현재 설정을 다시로드하는 데 사용합니다.그 상태는 일관성이있다.

+0

예제 링크는 무엇입니까? – VivekDev

관련 문제