2017-12-01 6 views
0

Ich habe 2 Modul In Modul A GetView Kann:nicht in der Region (Prism 5.0)

public void Initialize() 
    { 
     this.RegionManager.RegisterViewWithRegion("MainRegion",typeof(uc_LogIn)); 
     this.RegionManager.RegisterViewWithRegion("NavigatorRegion", typeof(uc_LogInNavigate)); 

     if (Application.Current.Resources.Contains("MainContainer")) 
      Application.Current.Resources["MainContainer"] = this.Container; 
     else 
      Application.Current.Resources.Add("MainContainer", this.Container); 
     if (Application.Current.Resources.Contains("MainRegionManager")) 
      Application.Current.Resources["MainRegionManager"] = this.RegionManager; 
     else 
      Application.Current.Resources.Add("MainRegionManager", this.RegionManager); 
    } 

In einer Funktion in Modul B:. So

private void OnLogout() 
    { 
     RegionManager regionManager = (RegionManager)Application.Current.Resources["MainRegionManager"]; 
     var view = regionManager.Regions["MainRegion"].GetView("uc_LogIn"); 
    } 

view“return null, kann Wie ich bekomme einen Blick in RegionManager ohne View.

ODER

Wie kann ich Viewname festgelegt in RegisterViewWithRegion-Funktion?

Antwort

0

Auf Ihre Frage: Wie bekomme ich eine Ansicht in RegionManager ohne ViewName.

ODER

Wie i Viewname in RegisterViewWithRegion Funktion einstellen kann?

Sie erhalten "null", weil "MainRegion" zu dieser Zeit noch keine aktiven vews hat.

Sie würden nur Leseansicht der Sammlung aller aktiven Ansichten in der Region erhalten.

Aber ich glaube, Sie wollten OnLogout() fragen, wie Sie zur Login-Ansicht (UC_Login) navigieren können ?? Um zum spezifischen Region Manager zu navigieren, können Sie Folgendes tun:

Sie können die RequestNavigate-Methode im RegionManager aufrufen, mit der Sie den Namen der zu navigierenden Region angeben können. Diese praktische Methode ruft einen Verweis auf die angegebene Region ab und ruft dann die RequestNavigate-Methode auf, wie im vorherigen Codebeispiel (https://msdn.microsoft.com/en-us/library/gg430861(v=pandp.40).aspx) gezeigt.

regionManager.RequestNavigate("MainRegion", 
           new Uri("uc_LogIn", UriKind.Relative)); 
Verwandte Themen