2016-08-24 92 views
0

嘿我正在使用Autofac(MVVM)的每個人我的問題是如何通過點擊彈出屏幕中的確定按鈕來重定向到DisplayAlert彈出窗口中的另一個頁面?由於顯示警報位於我的視圖和我的ViewModel中,因此導航到其他頁面的ICommand是導航器。重定向到DisplayAlert彈出窗口中的另一頁Xamarin.Form

  PushAsync<PageViewModel>(); 

我的一些代碼剪斷的:

的ViewModels

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

謝謝你的時間閱讀我的文章。

+0

只需按下導航堆棧。什麼是問題? –

+0

您是否試圖從掃描頁面導航?一旦掃描完成。 –

+0

@AnubhavRanjan這正是我試圖做的,掃描後導航到另一個頁面。 –

回答

0

可以使用,這將是另一個這樣DisplayAlert方法構造:

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

當我調試我的錯誤是無法解析類型_inavigator.pushasync ();我已經註冊到containerbuilder –

+0

這是另一回事,它基本上指出發生這種情況是因爲沒有註冊一些東西。看看你缺少什麼,例如IViewModel,INavigationServce等。 – RIYAZ

相關問題