如何使WPF页面具有通用的界面

时间:2009-11-11 06:57:02

标签: c# wpf polymorphism

我们开发了一个类似于向导的WPF应用程序,它具有导航到各种页面的Frame。我在一个单独的xaml和xaml.cs文件中定义每个页面,然后让应用程序使框架在页面之间导航。

我的所有网页目前都是从Page继承的。我希望我的所有页面都有一个通用界面,所以我可以多态地访问它们。但是,更改页面的基类会导致编译失败,因为Visual Studio从xaml文件自动生成的文件将基类设置为Page,并且我得到一个错误,即Partial声明不能指定不同的基类。 / p>

我有一个选择是添加另一个接口(例如WizardPage)并使所有类实现该接口,但每个页面需要实现所有接口函数的测量,这是不方便的,因为我想要大多数函数,对于大多数页面,要有默认的空实现。

你能否提出我可以用来解决这个问题的其他方案?

Thasnks
splintor

2 个答案:

答案 0 :(得分:3)

您可以将xaml的根标记设置为您定义的类。 在这里,您必须从Page派生您的基类,然后您可以从基类派生您的页面类。

public class MyBaseClass : Page
{
    .....
}

你可以从这样的类派生你的页面类:

public partial class MyDeriveClass : MyBaseClass
{
    .............
}

和你的xaml写

<y:MyBaseClass y="add your Namesapace here" and add other attribute of Page also like default namespace and xmlns:x>
    ...............
</y:MyBaseClass>

答案 1 :(得分:0)

创建一种扩展Page的适配器页面,并实现WizardPage,它提供了WizardPage方法的空实现。然后让你的其他页面扩展WizardPage。