从窗口的子类继承

本文关键字:继承 子类 窗口 | 更新日期: 2023-09-27 18:02:35

我有一个类型的窗口,我经常使用(有一个OK按钮和代码隐藏,只有当其他命令通过验证检查时才允许它被启用)。而不是必须复制粘贴代码后面的每个窗口,我创建的将有这个,我想创建这个ValidOKWindow,它继承窗口,并有我所有的其他窗口从它继承而不是。但是,我不能让它按原样工作。

我试过创建ValidOKWindow作为Window的子窗口,然后只替换其子类的代码继承:

public class WindowToInheritValidOK : ValidOKWindow

但是编译器会提示。xaml中不同的基类(),这并不奇怪。

我已经尝试改变基类在。xaml以及

<ValidOKWindow x:Class="WPF.WindowToInheritValidOK"

但是WPF显然只允许自己的类作为。xaml中的基类。

由于c#不允许多个类继承,我不知道如何做到这一点…

从窗口的子类继承

对于包含在默认xml命名空间(xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation")下的基本框架本身之外的任何类型,您需要指定一个xml命名空间。对于代码中的自定义类型,通常使用xmlnsclr-namespace来完成。因此,如果您的Window类在c#命名空间"WPF"中声明,那么该行应该看起来像:

<local:ValidOKWindow x:Class="WPF.WindowToInheritValidOK" xmlns:local="clr-namespace:WPF"