6

我有一个名为 CustomPage 的简单类,它继承自 Window:

public class CustomPage : Window 
{
    public string PageProperty { get; set; }
}

我希望我的 MainWindow 代码隐藏从 CustomPage 继承如下:

public partial class MainWindow : CustomPage
{
    public MainWindow()
    {
        InitializeComponent();
    }
}

不幸的是,我收到以下错误:

Partial declarations of 'WpfApplication1.MainWindow' must not specify different base classes

我可以在 MainWindow.xaml 中将 x:Class 设置为“WpfApplication1.CustomPage”,但是看起来我无法访问 MainWindow.xaml 中定义的 UI 元素...

4

2 回答 2

7
public partial class MainWindow 
{
    public MainWindow()
    {
        InitializeComponent();

    }
}

public class CustomPage : Window
{
    public string PageProperty { get; set; }
}

<myWindow:CustomPage x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:myWindow="clr-namespace:WpfApplication4"
    Title="MainWindow" Height="800" Width="800">
<Grid>
</Grid>
</myWindow:CustomPage>

我希望这将有所帮助。

于 2012-11-14T09:29:25.057 回答
4

您需要像这样更新您的 xaml -

<local:CustomPage x:Class="WpfApplication4.MainWindow"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
                  xmlns:local="clr-namespace:WpfApplication1">
</local:CustomPage>

在这里,local是您的命名空间CustomPageMainWindow所在的位置。

正如错误提示的那样,您不能为类的部分声明声明不同的基类。因此,在 XAML 中,您也需要使用CustomPageWPF 而不是Window

于 2012-11-14T09:25:11.767 回答