让Pages继承自自定义类的好习惯,而自定义类本身又继承自Page?

时间:2019-03-28 07:44:49

标签: c# wpf xaml uwp

有趣的是它起作用了。编译器没有代码问题,尽管这是我从未见过的(也许因为我是新手)。我想使用新继承的基本Page / class作为存储常用代码的地方,这样我就不必重复任何事情。在这里看看:

public sealed partial class HumanPage : SpeciesBasePage;
public sealed partial class AnimalPage : SpeciesBasePage;
public class SpeciesBasePage : Page;

显然,它可以工作,因为SpeciesBasePage实现了Page类。因此,您还将看到相关的XAML页面的开始标记将具有不同的基类:

<local:SpeciesBasePage 
    x:Class="PageInheritanceProject.HumanPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    ...>
    <Grid>
        <TextBlock Text="Hello, world!" />
    </Grid>
</local:SpeciesBasePage>

可以这样做吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个相当标准的继承链。用C#术语来说。 有两件事要考虑。

1)

Pages的使用是许多商业团队都会质疑的事情。

许多团队根本不使用页面,而是使用用户控件(托管在contentcontrols中)。

2)

从页面继承。您不能继承xaml,为什么要继承一个可能是容器的UI控件?