Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Partial declarations must not specify different base classes?

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" 
like image 691
cost Avatar asked Jan 17 '23 00:01

cost


1 Answers

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
{
    ...
like image 147
Chris Benard Avatar answered Mar 05 '23 21:03

Chris Benard