我的项目中有多个视图,希望它们从一个处理某些导航逻辑的基类派生。这个逻辑不属于VM,所以我把它放在View中。
现在,当我尝试更改视图的基类时,我收到以下错误:
部分声明 'ProjectName.Results'不得指定 不同的基类。
我唯一改变的是:
public partial class Results : PhoneApplicationPage
为:
public partial class Results : BaseView
我在项目中找不到任何其他结果类的删除。也许MVVMLight在构建时会产生一些东西。
是否可以让视图派生自基类?它应该是,但我不能让它工作。
答案 0 :(得分:7)
假设您的BaseView
继承PhoneApplicationPage
如下:
public class BaseView : PhoneApplicationPage
{
//...
}
改变之后:
public partial class Results : PhoneApplicationPage
要:
public partial class Results : BaseView
同时更改您的XAML
:
<phone:PhoneApplicationPage x:Class="WindowsPhonePivotApplication1.Results"
要:
<local:BaseView x:Class="WindowsPhonePivotApplication1.Results"
还添加如下的xml命名空间:
xmlns:local="clr-namespace:WindowsPhonePivotApplication1"
答案 1 :(得分:2)
您的Results类声明在XAML以及代码隐藏文件中得到满足,这就是您遇到此错误的原因。是的,可以从基础继承视图类,但我认为你最好使用组合来嵌入你的导航逻辑,例如你可以为它创建一个自定义控件并将其插入到你的所有视图中。