최근에 MvvmCross 5를 사용하고 새로운 INavigationService를 사용하기 시작했습니다.
그러나 Dialog Fragments를 표시하는 새로운 방법을 찾을 수 없으므로 다음과 같이 사용자 지정 발표자 (MvxFragmentsPresenter)에서 이전 방법을 계속 사용하고 있습니다.
protected override void ShowFragment(MvxViewModelRequest request)
{
var currentActivity = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity;
var appActivity = currentActivity as MvvmCross.Droid.FullFragging.Views.MvxActivity;
if (appActivity != null)
{
var loaderService = Mvx.Resolve<IMvxViewModelLoader>();
var viewModel = loaderService.LoadViewModel(request, null);
if (request.ViewModelType == typeof(ExampleViewModel))
{
var dialogFragment = new ExampleDialogFragment();
dialogFragment.ViewModel = (ExampleViewModel)viewModel;
dialogFragment.SetStyle(DialogFragmentStyle.Normal, Resource.Style.MainDialogTheme);
dialogFragment.Show(appActivity.FragmentManager, ExampleDialogFragment.DialogTag);
return;
}
}
내가 가진 문제는 매개 변수를이 대화 상자 조각에 전달해야 할 때 탐색 서비스가 올바른 매개 변수로보기 모델을 생성하지만 조각을 표시 할 때 사용자 지정 발표자는 매개 변수없이 새보기 모델을 생성합니다. 새 대화 상자 조각으로 설정합니다.
Loader 대신 MvxDefaultViewModelLocator를 사용해 보았지만 동일한 작업을 수행합니다.
var locatorService = Mvx.Resolve<IMvxViewModelLocator>();
var viewModel = locatorService.Load(request.ViewModelType, new MvxBundle(request.ParameterValues), null);
매개 변수로 생성 된 뷰 모델을 할당 할 수 있도록 대화 조각을 여는 새로운 방법이 있습니까?
모든 포인터에 감사드립니다.
https://github.com/MvvmCross/MvvmCross/pull/2099 에 대화 상자에 대한 기본 제공 지원을 추가했습니다. 이것은 현재 Myget에서 사용할 수 있으며 다음 MvvmCross 릴리스의 일부로 릴리스 될 예정입니다. 또한 여러 뷰 모델 인스턴스에 대해보다 영구적 인 수정 작업을하고 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다