在ViewModel Init中,MvxGridView绑定ItemClick和List为null

时间:2017-01-30 07:57:36

标签: xamarin mvvmcross mvxbind mvxlistview

我有问题...我有MvxGridView菜单项和ItemClick ShowMenuCommand

像这样:

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菜单中调试和断点时,菜单中有menuItems列表,但是当我在方法Init中的MenuCardViewModel中调试和断点时:

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

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

1 个答案:

答案 0 :(得分: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)
 {

 }

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