如何创建自定义的导航功能MvvmCross

时间:2018-12-06 15:00:23

标签: c# xamarin mvvmcross

您好,我正在尝试使用INavigationService创建自定义导航功能。我可能还很遥远,但这是我在BaseViewModel中拥有的东西:

public async Task Navigate<T>(object type)
    {
        if (canNavigate)
        {
            canNavigate = false;
            if (type is T)
            {
                await _navigationService.Navigate<type>();
            }
            canNavigate = true;
        }
    }

此代码不起作用,但是基本上我试图将ViewModel类作为参数传递,因此我可以这样称呼:_navigationService.Navigate<VM type here>

这甚至可能吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

似乎您正在尝试实现API Task<bool> Navigate<TViewModel>(...) where TViewModel : IMvxViewModel;中已经存在的内容。

要确保传递的对象类型正确,只需将其传递为T型:

public async Task Navigate<T>(T object) where T : <yourTypeHere>

另一个问题是,如果您已经需要在T中键入内容,为什么需要在对象内部进行