2016-09-23 3 views
1

Meine aktuelle App hat mehrere Hauptdetailseiten. Ich möchte eine Hilfsklasse erstellen, die über eine Funktion verfügt, die eine Liste von PageModels-Pages (ViewModels-views) akzeptiert, die ich durchgehen und Master-Detailseiten erstellen kann.Xamarin Forms: MasterPage Helper-Klasse

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; 
    } 

Dieser Code nicht work.It mir sagt item.key ist eine Variable und kann nicht als eine Art verwendet werden Kann man empfehlen Sie mir einen besseren Ansatz oder wie sonst Ich kann mein Ziel erreichen?

Antwort

2

Die Methode AddPage<T> ist eine generische Methode, die einen Typ erwartet. In diesem Fall ist es FreshBasePageModel. Die normale Nutzung wäre so etwas wie:

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

oder:

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

Da Ihr Verfahren bereits generisch ist, und scheint, dass Sie es wollen, dass die Art des Ansichtsmodell sein, das Sie einfach tun könnte:

public static Page SetupMasterDetailNav<T,U>(Dictionary<T,string> Menu) 
    where T : FreshBasePageModel 
0123:
masterDetail.AddPage<T>(item.Value); 

um dies zu tun, müssen Sie die wie etwas Ihre Methodensignatur ändern

Nicht sicher, was die U in Ihrem Fall verwendet, haben Sie keine Verwendung davon gezeigt.

Warum machst du das überhaupt rätselhaft?

+0

Vergessen, um U. zu entfernen. Wenn ich eine Hilfsmethode erstellen musste, wo ich Ansichtsmodelle übergeben, um die Hauptdetailseite zu erstellen. Was wäre der bessere Ansatz? Wie Sie sagten 'masterDetail.AddPage (" MyPage ");' ist die normale Verwendung, aber anstelle von 'MyViewModel' und 'MyPage' möchte ich Liste aller Ansicht Modelle, die ich erstellen möchte. – TheDeveloper

+0

Wie geht es Ihnen konstruiere diese Liste? – Cheesebaron

+0

In unserer App haben wir mehrere Hauptdetailseiten, daher möchte ich eine Hilfsfunktion erstellen, auf die ich zugreifen kann, wenn ich die Hauptdetailseite erstellen möchte. Ich möchte eine Hilfsklasse aufrufen und eine Liste mit Ansichtsmodellen übergeben (kann ein Wörterbuch sein?) Und dessen Namen, der von der Hilfsfunktion zum Erstellen einer Hauptdetailseite iteriert werden kann. – TheDeveloper