我想为我的小应用程序尝试MVC设计。
我有一个普通的Csharp类ViewBase,它扩展了UserControl。这是一个.cs文件。
我有多个要扩展ViewBase的类。这些是实际的UserControls,因此它们在.cs文件和.xaml文件后面有一个代码。
然而,CSharp告诉我,对于这些类,它们的基类“与其他部分中声明的不同”。
我想做什么呢?我做错了什么?
请注意,我没有修改我的XAML文件,所以他们仍然使用标签。
以下是相关代码:
// 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;
}
}
答案 0 :(得分:22)
请注意,我没有修改我的XAML 文件,所以他们仍然使用标签
那是你的问题。你需要改变:
<UserControl ...>
...
</UserControl>
到
<local:ViewBase xmlns:local="clr-namespace:..."
...
</local:ViewBase>
问题是你告诉编译器你在一个地方( .cs 文件)继承了ViewBase
而在另一个地方()继承了UserControl
.xaml 文件)。