2017-01-30 24 views
0

我有一个问题...我有MvxGridView与菜单项目,并与项目单击ShowMenuCommandMvxGridView结合项目单击和列表为空在视图模型初始化

像这样:

private ICommand _showMenuCommand; 
     public ICommand ShowMenuCommand 
     { 
      get 
      { 
       _showMenuCommand = _showMenuCommand ?? new MvxCommand<Menu>(DoShowMenuCommand); 
       return _showMenuCommand; 
      } 
     } 

     private void DoShowMenuCommand(Menu menu) 
     { 
      ShowViewModel<MenuCardViewModel>(menu); 
     } 

菜单包含像头的一些属性,名称,图像等,但也包含List menuItems。当我调试和断点DoShowMenuCommand菜单具有的菜单项列表,但是当我在方法Init调试和断点MenuCardViewModel:

public void Init(Menu menu) 
     { 
      // HERE.. 
     } 

因此,这里菜单有一切,但的MenuItems列表为空。我不知道为什么......一些提示为什么一切都在这里,但列表为空?

回答

0

MvvmCross将复杂的DTO串行化为JSON。我不知道你是如何实现这一点,但你可以尝试这种方式,并看看是否有帮助:

private void DoShowMenuCommand(Menu menu) 
{ 
    ShowViewModel<MenuCardViewModel,Menu>(menu); 
} 

所以第二个通用的是,你要传递的模型。下一步是将菜单通用添加到“MenuCardViewModel”

public class MenuCardViewModel : MvxViewModel<Menu> 

这将需要实现init方法:

protected override Task Init(Menu menu) 
{ 

} 

如果这不起作用,我建议在深入为什么你列表不可序列化/反序列化。