I want to attempt an MVC design for my little app.
I have a normal Csharp class ViewBase which extends UserControl. It's a single .cs file.
I have multiple classes that I want to extend ViewBase. These are actual UserControls so they have a code behind .cs file and a .xaml file.
However, CSharp tells me that for these classes, their base class "differs from declared in other parts".
Is what I want to do possible at all? What am I doing wrong?
Note that I did not modify my XAML files, so they still use tags.
Here is the relevant code:
// This gives the error in question and ViewBase is underlined
// "Base class of LoginView differs from declared in other parts"
public partial class LoginView : ViewBase {
public LoginView(Shell shell, ControllerBase controller) : base(shell, controller) {
InitializeComponent();
}
}
// This one is a single .cs file
public abstract class ViewBase : UserControl {
public Shell Shell { get; set; }
public ControllerBase Controller { get; set; }
protected ViewBase(Shell shell, ControllerBase controller)
{
Shell = shell;
Controller = controller;
}
}
Note that I did not modify my XAML files, so they still use tags
That's your problem. You'll need to change:
<UserControl ...>
...
</UserControl>
to
<local:ViewBase xmlns:local="clr-namespace:..."
...
</local:ViewBase>
The problem is you're telling the compiler you're inheriting ViewBase
in one place (the .cs file) and UserControl
in another (the .xaml file).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With