从phoneapplicationpage的子类继承代码隐藏类

本文关键字:继承 代码隐藏类 子类 phoneapplicationpage | 更新日期: 2023-09-27 17:50:12

默认情况下,所有代码隐藏类都继承自PhoneApplicationPage。我想做一个PhoneApplicationPage的子类,并使用它作为我的代码隐藏类的基础,像这样:

namespace Test
{
    public partial class HistoryRemoverPage : PhoneApplicationPage
    {
        protected override void OnNavigatedTo
            (NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.New)
                NavigationService.RemoveBackEntry();
        }
    }
}
namespace Test
{
    public partial class MainPage : HistoryRemoverPage 
    {
        public MainPage()
        {
            InitializeComponent();
        }
    }
}

当我尝试编译我的应用程序时,我得到以下错误:

错误1部分声明Test。"主页"不能指定不同的基类

我相信这与MainPage.xaml中的以下声明有关,该声明指向PhoneApplicationPage而不是我的子类:

电话:PhoneApplicationPage…

但是我不知道如何解决这个问题。任何建议吗?

从phoneapplicationpage的子类继承代码隐藏类

是的,你在正确的轨道上。您需要将MainPage.xaml中的根元素更改为您的自定义基类:

<test:HistoryRemoverPage x:Class="Test.MainPage"                   
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    <!-- ... ---> 
    xmlns:test="clr-namespace:Test">
         <!--LayoutRoot is the root grid where all page content is placed-->
         <Grid x:Name="LayoutRoot" Background="Transparent">
              <!-- ... --->
         </Gird>    
</test:HistoryRemoverPage>

注意,为了在XAML中指定基类,您需要添加基类名称空间(xmlns:test)。