默认情况下,所有代码隐藏类均从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'的部分声明
不同的基类


我相信这与MainPage.xaml中指向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>


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

07-24 18:26