簡體   English   中英

無法在Xamarin.Forms中獲取MainPage以進行響應/更改

[英]Cannot get MainPage in Xamarin.Forms to react/change

我嘗試了不同的方法來更改我的MainPage,但它沒有發生。 基本上,當我的App啟動時,它需要執行一些Async任務來初始化所有內容,然后顯示真正的主頁。 我首先在App.cs中嘗試了事件處理程序。 我可以確認事件處理程序確實在調試器中觸發。 但是,切換主頁的代碼未成功執行。 我的用戶界面沒有任何變化。 此代碼如下:

    private void UnitStatusModelChanged(object sender, EventArgs e)
    {
        UnitStatusModel = _unitStatusMonitor.UnitStatusModel;
        UnitStatusViewModel = new UnitStatusViewModel(UnitStatusModel, InputResourceHandler);
        MainPage = new MainTabbed(UnitStatusViewModel, InputResourceHandler);
        Debug.WriteLine("Switched page to " + UnitStatusModel.Version.Name);
    }

    protected override void OnStart()
    {
        _unitStatusMonitor.UnitStatusChanged += new UnitStatusModelChangedEventHandler(UnitStatusModelChanged);
        _commandQueue.StartQueue();
    }

我認為也許以這種方式設置MainPage並不是可行的方法。 因此,我嘗試將MainPage設置為空白的NavigationPage,然后在應用就緒后將模型頁面推到頂部。 這也沒有效果。

            var newPage = new MainTabbed(
                new UnitStatusViewModel(_unitStatusModel, inputResourceHandler),
                inputResourceHandler
                );
            App.Current.MainPage.Navigation.PushModalAsync(newPage);

我可以確認,如果我使用MainTabbed頁面啟動應用程序,則該頁面會顯示,因此MainTabbed應該不會出現問題。 再次,我還驗證了調試器中這些代碼行的執行情況,沒有拋出異常。 盡管如此,MainPage仍沒有變化。 是什么賦予了?

異步完成后,當您調用PushModalAsync(或任何UI東西)時,請檢查線程。 確保它在主線程上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM