我是Windows Phone开发的新手,如果我的问题很愚蠢,请原谅。
我开发了一个简单的泛型类,旨在成为我的 WP7 应用程序中所有页面的基类。它是这样的:
namespace Subway.Rails
{
public class Screen<TModel> : PhoneApplicationPage where TModel: class, new()
{
private static readonly DependencyProperty ModelProperty = DependencyProperty.Register("Model", typeof(TModel),
typeof (Screen<TModel>),
new PropertyMetadata(new TModel()));
public TModel Model
{
get { return GetValue(ModelProperty) as TModel; }
set { SetValue(ModelProperty, value); }
}
}
}
但是,当我尝试使用x:TypeArguments
指令在 XAML 中声明页面时
<rails:Screen x:TypeArguments="models:NotesStorage" xmlns:rails="clr-namespace:Subway.Rails;assembly=Subway.Rails" ...
并将 *.xaml.cs 文件中的基本类型加倍
public partial class HomeView : Screen<NotesStorage>
我收到运行时错误
Error 7 Using the generic type 'Subway.Rails.Screen<TModel>' requires 1 type arguments D:\development\labs\mobilelab\Subway.Notes\Subway.Notes\obj\Debug\Views\HomeView.g.cs 37 50 Subway.Notes
在生成的文件中。
有没有办法在 XAML 中实例化通用页面?