実現したいこと
- ContentPageを継承して作ったページを基本ページとして、その基本ページを継承したい
- 継承元か、継承先をどのように定義したらいいのでしょうか
前提
.NET MAUI で従来のC#のフォームの継承のようにPageを継承しようとしたらそのような継承は不可能だというエラーになりました
発生している問題・エラーメッセージ
エラー CS0263 'XXXPage' の partial 宣言では、異なる基底クラスを指定してはいけません
該当のソースコード
継承元にしたいページ
xaml
1<?xml version="1.0" encoding="utf-8" ?> 2<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" 3 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 4 x:Class="MyApp.ToolbarBasePage" 5 Title="ToolbarBasePage"> 6 7 <ContentPage.ToolbarItems> 8 <ToolbarItem Clicked="Apply_Clicked" x:Name="Apply" /> 9 </ContentPage.ToolbarItems> 10 11</ContentPage>
csharp
1public partial class ToolbarBasePage : ContentPage 2{ 3 public ToolbarBasePage() 4 { 5 InitializeComponent(); 6 } 7 8 /// この関数を継承先で使いたい 9 protected void ValueChaned() 10 { 11 Apply.Text = "APPLY"; 12 Apply.IsEnabled = true; 13 Apply.IconImageSource = ImageSource.FromFile(ConstData.IMAGE_DONE); 14 } 15}
ToolbarBasePageを継承したいContentPage
xml
1<?xml version="1.0" encoding="utf-8" ?> 2<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" 3 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 4 x:Class="MyApp.XXX" > 5 <!-- ここのToolbarItemsを継承元のを使いたい --> 6 <!--<ContentPage.ToolbarItems> 7 <ToolbarItem Clicked="TabApply_Clicked" x:Name="tabApply" /> 8 </ContentPage.ToolbarItems>--> 9 10 <VerticalStackLayout x:Name="mainLayout"> 11 </VerticalStackLayout> 12</ContentPage>
csharp
1public partial class XXX: ToolbarBasePage // ここでエラー発生 2{ 3InitializeComponent(); 4}
試したこと
双方のpartialを取ってみたり、継承元をpublicからprotected等にしてみましたが変わりませんでした
補足情報(FW/ツールのバージョンなど)
Visual Studio 2022/17.8
.net 8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/12/02 12:40