2013-04-15 2 views
2

저는 기본적인 MvvmCross (v3.0.3) 예제를 통해 작업 중이며 응용 프로그램이 삭제 표시 될 때 상태를 다시로드하는 방법을 알아 내려고 노력하고 있습니다. 지금은 하나의 뷰 모델과 하나의 속성을 가진 Portable Class Library가 있습니다. 이 PCL을 참조하고 뷰 모델에 바인딩 한 다음 텍스트 블록을 속성에 바인딩하는 Windows Phone 8 응용 프로그램도 있습니다.MvvmCross 및 Tombstoning

속성의 값이 화면에 표시되기 때문에 모든 것이 잘 작동합니다. 비활성화에 대한 삭제 표시로 WP8 프로젝트를 설정하고 시작 단추를 클릭하면 ViewModel.SaveState 메서드 (코드가 열려 있지 않아 올바른 이름이 아닐 수 있습니다)가 호출되고 제공된 "번들을 채울 수 있습니다. "재산의 가치와 함께.

그러나 "뒤로"버튼을 눌러 응용 프로그램으로 돌아갈 때 해당 ViewModel.ReloadState 메소드에 대한 호출이 없습니다. SaveState에 지정된 데이터를로드 할 수 있도록이 메서드에 대한 호출을 기다리고있었습니다.

내가 누락 된 자료가 있습니까? MvvmCross에서 "비활성화시 삭제 표시"옵션이 발생하지 않습니까?

답변

0

v3의 삭제 표시 코드는 완전히 새롭습니다. 아직 WinRT 및 Android에서 개인적으로 테스트 해 왔지만 모든 플랫폼에서 아직 완전히 작동하지 않았습니다.

나는 또한 개방 한 기능을 왼쪽으로 한 WindowsPhone과에

- 나는 확실히 그것을 넣어 무엇을 몰랐 주로하기 때문에 ...

당신이로드하고 내 상태의 저장을 구현하는 데 필요한 기능을 당신의 페이지 - MvxPhonePage에있는 두 개의 빈 가상 메소드를 참조하십시오 https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.WindowsPhone/Views/MvxPhonePage.cs#L54

코드를 MvxBundle로// 역 직렬화하는 텍스트를 직렬화하는 것은 매우 간단합니다 - 그냥 IMvxSavedStateConverter를 사용 -에 드로이드 코드를 참조하십시오 https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxActivityViewExtensions.cs#L59

것은 그것은있을 수 있습니다 거기에있다. 모든 Windows Phone 응용 프로그램에서 사용할 수있는 일반 코드 ...

+0

안녕 스튜어트. MvxPhonePage의 LoadStateBundle 메서드가 SaveStateBundle의 동일한 IMvxBundle에 대한 액세스를 제공하지 않는다는 것을 알았습니다. 데이터 저장/로딩을 직접 관리하고 IMvxBundle에 의존하지 않는다고 생각하면 옳은 것입니까? 또한 Windows Phone에서 ViewModel.SaveState 및 ViewModel.ReloadState를 사용할 계획입니까? – MotoSV

+1

오늘 텍사스에서 바쁜 비트 ...하지만 기본적으로 삭제 표시를해야하는 페이지는 LoadStateBundle 및 SaveStateBundle을 구현해야합니다. 즉, 격리 된 저장소에서 어디에 번들 데이터를 저장하고로드 할 것인지를 결정해야합니다 (문자열 문자열 사전). 구현 한 후에는 삭제 표시 *가 작동해야합니다. – Stuart

+0

죄송합니다. 어제 더 이상 답변을 드리지 못해 죄송합니다. 바쁜 일입니다. 작동하지 않으면 ... 알려주세요! – Stuart