尝试在Silverlight 4业务应用程序中为我的视图创建基类,以便在我的应用程序中提供常用方法。不幸的是,这样做会导致以下错误:
'SomeApp.Views.Home'的部分声明不得指定不同的基类
似乎Silverlight正在为此View创建另一个分部类。有没有办法让这个工作?
我试图在View的XAML中指定子类:
X:亚类= “SomeApp.Views.PageBase”
这不起作用。
答案 0 :(得分:2)
是“Sivlerlight”正在创建另一个部分类(实际上它正在执行它的Visual Studio / MSBuild)。保存具有构建操作“编译”的.xaml文件时,将创建动态.g.i.cs文件。它包含一个与x:Class
属性匹配的部分类,并派生自Xaml中顶级节点所代表的类。
因此xaml是这样的: -
<UserControl x:Class="SilverlightApplication1.MyControl" ... />
将生成包含以下内容的MyControl.g.i.c: -
namespace SilverlightApplication1 {
public partial class MyControl : System.Windows.Controls. UserControl {
....
代码隐藏文件必须匹配。
因此,如果要创建一个新的基类来派生,那么您的顶级元素必须与基类匹配。
<local:PageBase xmlns:local="clr-namespace:SomeApp.Views" x:Class="SomeApp.Views.Home" ... />
另请参阅:how to create Multiple user control that pointing single code behind file in silverlight 4