2012-08-23 69 views
2

我是一個windows phone開發的新手,所以如果我的問題是一個愚蠢的問題,請原諒。在xaml中實例化一個通用頁面

我已經開發了一個簡單的泛型類,旨在成爲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指令

<rails:Screen x:TypeArguments="models:NotesStorage" xmlns:rails="clr-namespace:Subway.Rails;assembly=Subway.Rails" ... 

在XAML申報頁面,並在* .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中實例化通用頁面嗎?

+0

[Silverlight 4支持x:TypeArguments]的可能重複(http://stackoverflow.com/questions/4270351/silverlight-4-support-for-xtypearguments) – nemesv

回答

1

儘管我找不到任何正式說明的東西(通常很難在不支持的功能上找到相關文檔):當它是not supported in Silverlight時,它在Windows Phone上不可用。

您看到的錯誤消息似乎證實了這一點。