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
在你的案例中的用途,你没有显示它的用法。
你为什么要这样做让我很困惑。
我当前的应用程序有多个主详细信息页面。我想创建一个助手 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
在你的案例中的用途,你没有显示它的用法。
你为什么要这样做让我很困惑。