Xamarin 表单:MasterPage 助手 class

Xamarin Forms: MasterPage Helper class

我当前的应用程序有多个主详细信息页面。我想创建一个助手 class,它具有接受 PageModels-Pages(ViewModels-views) 列表的功能,我可以遍历它并创建主详细信息页面。

我的当前代码:

public static Page SetupMasterDetailNav<T,U>( Dictionary<T,string> Menu) 
        where T : class 
         //In Dictionary T is ViewModel(PageModel) , 
          String is name displayed on Master page  
    {
        var masterDetail = new FreshMasterDetailNavigationContainer();

        foreach (KeyValuePair<T,string> item in Menu)
        {
            masterDetail.AddPage<item.Key>(item.Value); 
        }
        masterDetail.Init("");
        return masterDetail;
    }

此代码 work.It 没有告诉我 item.key 是一个变量,不能用作类型 任何人都可以建议我更好的方法或者我还能如何实现我的目标吗?

AddPage<T> 方法是一个泛型方法,需要一个类型。在本例中为 FreshBasePageModel。正常用法是这样的:

masterDetail.AddPage<MyViewModel>("MyPage", model);

或:

masterDetail.AddPage<MyViewModel>("MyPage");

由于您的方法已经是通用的,并且您似乎希望它成为您可以简单地执行的 ViewModel 的类型:

masterDetail.AddPage<T>(item.Value);

为此,您必须将您的方法签名更改为:

public static Page SetupMasterDetailNav<T,U>(Dictionary<T,string> Menu) 
    where T : FreshBasePageModel

不确定 U 在你的案例中的用途,你没有显示它的用法。

你为什么要这样做让我很困惑。