2016-08-24 1 views
0

Hey Jeder benutze ich Autofac (MVVM) mein Problem ist, wie auf eine andere Seite von DisplayAlert Popup umleiten, indem Sie OK im Popup-Bildschirm klicken? Da die Anzeige in meinen Views und in meinen ViewModels angezeigt wird, ist der ICommand Navigator zu einer anderen Seite navigiert.Redirect auf eine andere Seite von DisplayAlert Popup Xamarin.Form

  PushAsync<PageViewModel>(); 

Einige meiner-Code Schnipsel:

Viewmodel

public class HomePageViewModel : ViewModelBase 
    { 
    private readonly INavigator _navigator; 

    public HomePageViewModel(INavigator navigator) 
    { 
     _navigator = navigator; 
     CmdInvites = new Command(Cmdinvites); 
    } 

    public ICommand CmdInvites { get; private set; } 


    //Invite PhoneBook 
    private void Cmdinvites() 
    { 
     _navigator.PushAsync<PhoneContactViewModel>(); 
    } 

    } 


zxing.OnScanResult += (result) => 
Device.BeginInvokeOnMainThread(async() => { 
// Stop analysis until we navigate away so we don't keep reading barcodes 
    zxing.IsAnalyzing = false; 
    // Show an alert 
    await DisplayAlert("Scanned Barcode", result.Text, "OK"); 
    // Navigate away 
    await Navigation.PopAsync(); 
     <-------------this is where i want to redirect the {Binding CmdInvites}   
}); 

Vielen Dank für die Zeit, um meine Post zu lesen.

+0

einfach auf die Navigationsstapel schieben. Was ist das Problem? –

+0

Versuchen Sie, von der Scan-Seite weg zu navigieren? Sobald der Scanvorgang abgeschlossen ist. –

+0

@AnubhavRanjan genau das ist was ich versuche zu tun, Nach dem Scannen navigieren Sie zu einer anderen Seite. –

Antwort

0

können Sie einen anderen DisplayAlert Methode Konstruktor verwenden, die wie folgt sein:

Device.BeginInvokeOnMainThread(async() => { 
// Stop analysis until we navigate away so we don't keep reading barcodes 
    zxing.IsAnalyzing = false; 
    // Show an alert 
    if(await DisplayAlert("Scanned Barcode", result.Text, "Accept","Cancel")) 
    { 
    // Navigate away 
    await Navigation.PopAsync(); 
     <-------------this is where i want to redirect the {Binding CmdInvites} 
    }  
}); 
+0

wenn ich meinen Fehler debuggen kann, konnte Typ _inavigator.pushasync () nicht aufgelöst werden; Ich registriere es bereits beim Containerbauer –

+0

Das ist etwas anderes, und es deutet im Grunde darauf hin, dass etwas nicht registriert wird. Sehen Sie, was Sie vermissen, z. B. IViewModel, INavigationServce usw. – RIYAZ

Verwandte Themen