Xamarin Forms: мастер-класс помощника
Мое текущее приложение имеет несколько страниц с основными сведениями. Я хочу создать вспомогательный класс, который имеет функцию, которая принимает список PageModels-Pages( ViewModels-views), через который я могу перебирать и создавать главные страницы с подробностями.
MyCurrent Code:
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;
}
Этот код не работает. Он говорит мне, что item.key является переменной и не может использоваться как тип. Может ли кто-нибудь предложить мне лучший подход или как еще я могу достичь своей цели?
1 ответ
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
используется в вашем случае, вы не показали его использование.
Почему ты вообще это делаешь меня озадачивает.