2015-02-24 3 views
6

Ich bin neu in der Xamarin App-Entwicklung nennen, ich habe einige Fragen:wie plattformspezifische Seite von xamarin.forms

  1. Ist es möglich, die plattformspezifische Seite von der Xamarin.Form Seite zu nennen?
  2. Kann ich die Seitennavigation vom Ansichtsmodell ausführen?

Lassen Sie mich klar erklären.

Ich habe eine Seite XFView.xaml, XFView.xaml.cs und XFViewModel.cs in PCL (Xamarin.Forms) Projekt von XFView.xaml.cs oder XFViewModel.cs ich will MAActivity.cs Seite aufzurufen, die in Xamarin.Andriod Projekt vorhanden ist

ich viel versucht, aber habe keine Ahnung, bekommen .

Antwort

7

Wenn Sie etwas von nativen (MAActivity.cs in Ihrem Fall) aufrufen möchten, müssen Sie DependencyService verwenden.

Zum Beispiel:

  1. Setup-Abhängigkeitsdienst

    // PCL Project 
    public interface INativePages 
    { 
        void StartMA(); 
    } 
    
    // MonoDroid Project 
    [assembly: Dependency(typeof(NativePages))] 
    
    public class NativePages : INativePages 
    { 
        public void StartMA() 
        { 
         var intent = new Intent(Forms.Context, typeof(MAActivity)); 
         Forms.Context.StartActivity(intent); 
        } 
    } 
    
  2. Invoke in PCL

    // PCL Project 
    DependencyService.Get<INativePages>().StartMA(); 
    
+0

Das funktioniert gut für Android - aber ich bin zu kämpfen finden das WP8-Äquivalent. Es scheint einige Lösungen mit benutzerdefinierten Rendern zu geben, aber ich würde es vorziehen, das zu vermeiden ... –

+1

Got it! '(Application.Current.RootVisual als PhoneApplicationFrame) .Navigieren (neue Uri ("/PageName.xaml ", UriKind.Relative));' –