Я изо всех сил стараюсь найти правильный способ сделать это. У меня есть MyCollectionViewModel
, который содержит наблюдаемые коллекции MyViewModel
. У меня есть привязка к виду MyCollectionView
с выбором элемента, связанного обратно с командой в MyCollectionViewModel
под названием OpenMyViewCommand
. До сих пор так хорошо:Открыть Просмотреть выбранный ViewModel
private MvxCommand<MyViewModel> _openMyViewCommand;
public ICommand OpenMyViewCommand
{
get {
_openMyViewCommand= _openMyViewCommand?? new MvxCommand<MyViewModel>(OpenMyView);
return _openSubViewCommand;
}
}
Теперь, когда я прикасаюсь один из пунктов моего списка просмотр будет срабатывать команду и вызвать метод OpenMyView
проходящий выбранный MyViewModel
к методу. Теперь проблема в том, что независимо от того, что я пытаюсь, я могу показать ShowViewModel
, чтобы отобразить представление для выбранной модели. Я пробовал различные вещи, но интуитивно, я бы ожидал чего-то очень простое, как это работает:
private void OpenMyView(MyViewModel item) {
ShowViewModel<MyViewModel > (item);
}
Но, конечно, это не так. Я получаю ошибки, которые выглядят так:
013-06-10 10:46:05.849 MyAppIPhoneUI[51198:c07] mvx: Warning: 5.83 Problem creating viewModel of type MyViewModel - problem MvxException: Failed to resolve parameter for parameter model of type MyModel when creating MyApp.Core.MyViewModel
at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type type, System.Reflection.ConstructorInfo firstConstructor) [0x00042] in /MvvmCross-3/CrossCore/Cirrious.CrossCore/IoC/MvxSimpleIoCContainer.cs:377
at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.IoCConstruct (System.Type type) [0x00030] in /MvvmCross-3/CrossCore/Cirrious.CrossCore/IoC/MvxSimpleIoCContainer.cs:266
at Cirrious.CrossCore.Mvx.IocConstruct (System.Type t) [0x00006] in /MvvmCross-3/CrossCore/Cirrious.CrossCore/Mvx.cs:115
at Cirrious.MvvmCross.ViewModels.MvxDefaultViewModelLocator.TryLoad (System.Type viewModelType, IMvxBundle parameterValues, IMvxBundle savedState, IMvxViewModel& viewModel) [0x00004] in /MvvmCross-3/Cirrious/Cirrious.MvvmCross/ViewModels/MvxDefaultViewModelLocator.cs:27
013-06-10 10:24:11.330 MyAppIPhoneUI[50878:c07] mvx: Warning: 6.87 Exception masked MvxException: Failed to load ViewModel for type MyApp.Core.MyViewModel from locator MvxDefaultViewModelLocator
at Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest request, IMvxBundle savedState, IMvxViewModelLocator viewModelLocator) [0x00023] in /MvxViewModelLoader.cs:46
Любая идея, что здесь происходит? У меня есть класс MyView
, который наследуется от MvxViewController, но он не загружается.
Спасибо Стюарт. Я переделал его так же, как и часть 4-го сбора, и, похоже, он работает, но это похоже на долгий путь. Но я думаю, что ваша точка зрения о жизненном цикле - это то, что мне нужно прочитать еще. –