部分声明不能指定不同的基类?

cos*_*ost 3 c# wpf inheritance xaml

我看到其他一些人在其他问题中询问此错误消息,但我似乎并不了解为自己解决这个问题的原因.我通过WPF UserControl创建了这个错误

public partial class EnterNewRequest : UserControl
Run Code Online (Sandbox Code Playgroud)

但后来我想为UserControl添加一个方法,所以我使用继承将其粘贴在那里(不能使用扩展,因为我需要覆盖此方法).但是现在我的usercontrol很难过,我不确定xaml中我需要改变什么.UserControl更改块位于命名空间RCO_Manager中.这是我的xaml:

<UserControl x:Class="RCO_Manager.EnterNewRequest"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
Run Code Online (Sandbox Code Playgroud)

Chr*_*ard 7

我在使用Windows Phone时遇到了同样的问题.我不记得确切的例外,但你可以看到这里GitHub上的XAML,这里的页面代码,并在此基础页面代码(我的是一个基本页面,而不是基本控制).我需要添加一个新的XAML命名空间并更改<UserControl/>声明:

代码假设

namespace RCO_Manager
{
    // Inherits **Base**UserControl, not UserControl
    public partial class EnterNewRequest : BaseUserControl
    {
        // Magic goes here
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

XAML

<local:BaseUserControl
    xmlns:local="clr-namespace:RCO_Manager"
    x:Class="RCO_Manager.EnterNewRequest"
Run Code Online (Sandbox Code Playgroud)

边注

根据Baboon的说法,一旦指定了基类,就不需要在代码隐藏中指定它XAML,因此您可以更改代码隐藏以显示以下内容.我现在无法验证它,但你可以在它运行后尝试一下.

public partial class EnterNewRequest // Don't specify BaseUserControl here
{
    ...
Run Code Online (Sandbox Code Playgroud)