亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何繼承 Xamarin Forms 基類 Page(其中包含視圖)?

如何繼承 Xamarin Forms 基類 Page(其中包含視圖)?

C#
蝴蝶刀刀 2023-09-16 20:18:28
這讓我抓狂。我試圖從我制作的基本 SettingsPage 繼承,但它不起作用,而且我在任何地方都找不到如何執行此操作的示例。我發現的所有示例都涉及繼承視圖模型和其他非視覺元素。特別是,我不確定您如何處理派生頁面中的“Content =”,因為基本頁面已經設置了“Content =”。關于繼承的 MS doco 說您不繼承構造函數,但可以使用 :base() 繼承它。我已經組合了一個顏色方案選擇器(在 amporis.xamarin.forms.colorpicker 上擴展),我想將其用作其他設置頁面的基礎(在我想要顏色方案選擇器和其他設置的應用程序中)出色地)。我有一個類庫 CSettings,如果直接加載的話,CSettingsPage 加載得很好(其中包括 Content=SettingsGrid,所有內容都首先加載到其中) - 一切都是“公共”的。然后我有一個 TestBed 應用程序,并嘗試創建一個 TBSettingsPage。在頂部我有namespace TestBed {    public class TBSettingsPage : CSettingsPage {...(當然我已經引用了 DLL),并且我已經使用構造函數嘗試了以下 3 種變體...public TBSettingsPage():base() {}public TBSettingsPage():base() { Content=SettingsGrid; }public TBSettingsPage() { Content=SettingsGrid; }每次我得到...“拋出異常:Xamarin.Forms.Platform.UAP.dll 中的‘System.Runtime.InteropServices.COMException’錯誤 HRESULT E_FAIL 已從對 COM 組件的調用返回。” 在 Xamarin.Forms 初始化處。...這不是一個非常有用的錯誤消息。它基本上說“那是不對的”,但沒有告訴我什么是不對的,也沒有告訴我如何解決它(谷歌搜索它會出現各種各樣的情況,其中沒有一個適用于我想做的事情)。:-(誰能告訴我如何從已有視圖的 BasePage 中派生?(我看到了一個關于在頁面構建完成之前使其不可見的提示,然后使其可見,但這沒有幫助)?;蛘呓o我指出一個實現這樣的事情的例子?注意:我的 UI 使用 C#,而不是 XAML。如果相關的話,這也在 UWP 中。謝謝,唐納德。根據要求,這是來自 OnLaunched 的代碼protected override void OnLaunched(LaunchActivatedEventArgs e) {        Frame rootFrame = Window.Current.Content as Frame;        // Do not repeat app initialization when the Window already has content,        // just ensure that the window is active        if (rootFrame == null)        {            // Create a Frame to act as the navigation context and navigate to the first page            rootFrame = new Frame();            rootFrame.NavigationFailed += OnNavigationFailed;            Xamarin.Forms.Forms.Init(e);            if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)            {                //TODO: Load state from previously suspended application            }            // Place the frame in the current Window            Window.Current.Content = rootFrame;        }
查看完整描述

1 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

所以我最終發現這都是由于 UWP 中的一個錯誤給我帶來了一個紅鯡魚 - 請參閱https://github.com/xamarin/Xamarin.Forms/issues/9335。正確的語法是我說的第一個語法 - 即public TBSettingsPage():base() {}- 但 UWP 錯誤阻止我看到它是正確的(因為我的應用程序仍然崩潰)。值得慶幸的是,這個錯誤現在正在修復中,既然我知道了正確的語法,我就可以繼續編碼了。:-)



查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號