C# 从窗口的子类继承

C# 从窗口的子类继承,c#,wpf,xaml,inheritance,C#,Wpf,Xaml,Inheritance,我有一种我经常使用的窗口(后面有一个OK按钮和代码,它只允许在其他命令通过验证检查时启用)。我想创建一个ValidOKWindow,它继承窗口,并让我的所有其他窗口继承它,而不是为我创建的每个窗口复制粘贴此代码。然而,我不能让它按原样工作 我尝试将ValidOKWindow创建为Window的子类,然后仅替换子类继承背后的代码: public class WindowToInheritValidOK : ValidOKWindow 但是编译器会大喊.xaml()中的不同基类,这并不奇怪 我也尝

我有一种我经常使用的窗口(后面有一个OK按钮和代码,它只允许在其他命令通过验证检查时启用)。我想创建一个ValidOKWindow,它继承窗口,并让我的所有其他窗口继承它,而不是为我创建的每个窗口复制粘贴此代码。然而,我不能让它按原样工作

我尝试将ValidOKWindow创建为Window的子类,然后仅替换子类继承背后的代码:

public class WindowToInheritValidOK : ValidOKWindow
但是编译器会大喊.xaml()中的不同基类,这并不奇怪

我也尝试过更改.xaml中的基类

<ValidOKWindow x:Class="WPF.WindowToInheritValidOK"

用于默认xml命名空间(
xmlns=”下包含的基本框架本身之外的任何类型http://schemas.microsoft.com/winfx/2006/xaml/presentation“
)您需要指定一个xml命名空间。对于代码中您自己的自定义类型,这通常是使用
xmlns
clr命名空间来完成的。因此,如果您的
窗口
类是在C#名称空间“
WPF
”中声明的,那么该行应该如下所示:

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

我以前尝试过这样做,但没有成功,这导致了一个错误,即XAML构建的类不能用于其他XAML类。我认为这意味着只有标准类才能做到这一点,但后来我意识到这实际上意味着什么:我必须将ValidOKWindow定义为一个.cs类,而不是一个窗口(使用XAML和.XAML.cs文件)。这样做成功了。非常感谢!是的,有代码的继承,但没有XAML,这似乎是一个不好的限制,除非你考虑到继承的XAML可能带来的所有歧义。