如何创建自定义导航函数 MvvmCross

How to create a custom Navigate function 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 class 作为参数传递,因此我可以这样调用它:_navigationService.Navigate<VM type here>

这可能吗?提前致谢!

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

为确保传递的对象类型正确,只需使用T类型传递即可:

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

另一个问题是,如果你已经需要输入 T,为什么还需要在里面反对。