在WP7和MVVMLight中查看基类

时间:2010-12-29 07:53:13

标签: c# silverlight windows-phone-7 mvvm-light

我的项目中有多个视图,希望它们从一个处理某些导航逻辑的基类派生。这个逻辑不属于VM,所以我把它放在View中。

现在,当我尝试更改视图的基类时,我收到以下错误:

  

部分声明   'ProjectName.Results'不得指定   不同的基类。

我唯一改变的是:

public partial class Results : PhoneApplicationPage

为:

public partial class Results : BaseView

我在项目中找不到任何其他结果类的删除。也许MVVMLight在构建时会产生一些东西。

是否可以让视图派生自基类?它应该是,但我不能让它工作。

2 个答案:

答案 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以及代码隐藏文件中得到满足,这就是您遇到此错误的原因。是的,可以从基础继承视图类,但我认为你最好使用组合来嵌入你的导航逻辑,例如你可以为它创建一个自定义控件并将其插入到你的所有视图中。