创建一个从 C# 中的 WPF 控件派生的自定义 <Page> 类?

问题描述 投票:0回答:1

我之前一直在我的 WPF 应用程序中使用 System.Windows.Controls.Page 类。 现在需要创建我自己的类“CustomPage”,派生自“System.Windows.Controls.Page”,

public class CustomPage : System.Windows.Controls.Page
{
    public long? CustomProperty { get; set; }

    public CustomPage()
    {
         //some code
    }
}

这样

public partial class MyPage : Page
{
    public MyPage()
    {
        InitializeComponent();
    }
}

成为

public partial class MyPage : CustomPage
{
    public MyPage()
    {
        InitializeComponent();
        CustomProperty = null;
    }
}

但是当我重建解决方案时,自动生成的代码会刷新我的代码,基于“System.Windows.Controls.Page”而不是 CustomPage 创建类的第二部分

    /// <summary>
    /// MyPage
    /// </summary>
    public partial class MyPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
//...

我收到一个错误,例如“您部分定义的类应该引用相同的基类”。如何使用派生的 CustomPage 类而不是 System.Windows.Controls.Page 并避免错误?如果我尝试修改 .xaml 文件中的类并使用

<CustomPage>
而不是
<Page>
,我会在 WPF 中收到错误“不支持 CustomPage 类”。

[更新1] 这是我的 .xaml 文件,这里没有什么有趣的,我无法通过此处的

<Page>
类修改我的
<CustomPage>
类,“不支持 CustomPage”错误。

<Page x:Class="DerivedPage.MyPage"
      ...
      Title="MyPage">

    <Grid>
        
    </Grid>
</Page>

值得一提的是,我对WPF有点陌生,我不知道是否可以在这里使用我的自定义类

c# wpf xaml
1个回答
2
投票

您应该告诉编译器显式使用您的类。

 <local:MyPage x:Class="DerivedPage.MyPage"
               xmlns:local="clr-namespace:AppName.DerivedPage"
               ...
© www.soinside.com 2019 - 2024. All rights reserved.