MvvmCross 3.5.1을 사용하여 Win 8.1 응용 프로그램을 개발합니다. 사용자는 일부보기를 순차적으로 거쳐 마지막보기의 첫 번째보기로 돌아갑니다. 모든 것이 워크 플로의 첫 번째 반복 과정에서 완벽하게 작동합니다. 그러나 사용자가 워크 플로를 다시 시작하면 viewmodels의 Init() 메서드가 호출되지 않습니다.ViewModel을 다시 탐색 할 때 Init() 메서드가 호출되지 않는 이유는 무엇입니까?
예를 들어 FirstViewModel과 SecondViewModel 간의 상호 작용은 다음과 같습니다.
FirstViewModel :
ShowViewModel<SecondViewModel>(
new
{
code = ItemCode,
descr = ItemDescription
});
SecondViewModel :
public void Init(string code, string descr)
{
...
}
그래서 간단하지만 작동 한 번만 이유가 그런 행동을 수반 할 수있다 무엇 :(
로 w orkaround 나는 "수동"뷰 모델로드 시도 :
var d = new Dictionary<string, string>
{
{"code", ItemCode},
{"descr", ItemDescription}
};
var b = new MvxBundle(d);
var r = new MvxViewModelRequest<SecondViewModel>(b, null, null);
var m = Mvx.Resolve<IMvxViewModelLoader>().LoadViewModel(r, null);
그것은() 메소드 호출 초기화와 함께 문제를 해결했다. 하지만 m 변수를 사용하여 뷰 모델을 표시하는 방법을 모르겠습니다. 누구?
불쌍한 영어에 대한 사과와 미리 감사드립니다.
내가 mvvmcross 모르는,하지만 난 당신이 "로드"방법 또는 "로드 검색하는 생각 것 "이벤트. – Kilazur
보기를 명시 적으로 삭제하지 않는 한 가능성이 높습니다. 반환 된 사진은 다시 초기화되지 않고 초기화되었을 때 메모리에서 다시 당겨집니다. –
이 게시물은 당신에게 흥미로울 것입니다. http://stackoverflow.com/questions/17857543/mvvmcross-viewmodel-caching-and-re-initializing – momar