Partial declarations must not specify different base classes?

c#, inheritance, wpf, xaml

Solution

I had the same issue when I was working with Windows Phone. I can't remember the exact exception, but you can see the XAML here on GitHub, the page code here, and the base page code here (mine was a base page, not base control). I needed to add a new `XAML` namespace and change the `<UserControl/>` declaration:

Code Assumption

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"

Side Note

According to Baboon, you don't need to specify it in your code-behind once you specify the base class in the `XAML`, so you can then change the code-behind to show the following. I can't verify it right now, but you can give this a try after you get it working.

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

Problem

I see a number of other people asking about this error message in other questions, but I don't seem to understand enough about what's going on to fix this for myself. I created this error by having a WPF UserControl ``` public partial class EnterNewRequest : UserControl ``` But then later on I wanted to add a method to UserControl, so I used inheritance to stick it in there (can't use an extension because I need to override this method). But now my usercontrol is upset, and I'm not sure what in the xaml I need to change. The UserControl change block is in the namespace RCO_Manager. This is my 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" ```

Original source