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

时间:2012-04-04 12:18:29

标签: c# wpf xaml inheritance

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

创建了这个错误
public partial class EnterNewRequest : UserControl

但后来我想在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" 

1 个答案:

答案 0 :(得分:7)

我在使用Windows Phone时遇到了同样的问题。我无法记住确切的异常,但您可以看到XAML here on GitHubthe page code herebase page code here(我的是基页,而不是基本控件)。我需要添加一个新的XAML命名空间并更改<UserControl/>声明:

代码假设

namespace RCO_Manager
{
    // Inherits **Base**UserControl, not UserControl
    public partial class EnterNewRequest : BaseUserControl
    {
        // Magic goes here
        ...
    }
}

<强> XAML

<local:BaseUserControl
    xmlns:local="clr-namespace:RCO_Manager"
    x:Class="RCO_Manager.EnterNewRequest"

旁注

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

public partial class EnterNewRequest // Don't specify BaseUserControl here
{
    ...