2012-03-14 90 views
2

我目前這個確切的代碼工作:XamlParseException當我繼承頁面從通用基礎類

public class ViewModelAwarePage<T> : Page 
{   
} 

public class BaseMainMenuView 
    : ViewModelAwarePage<String> 
{  
} 

public sealed partial class MainMenuView 
    : BaseMainMenuView 
{ 
    public MainMenuView() 
    { 
     this.InitializeComponent(); 
    } 
} 

和XAML:

<local:BaseMainMenuView 
x:Name="pageRoot" 
x:Class="Tutorial.UI.WinRT.Views.MainMenuView" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:Tutorial.UI.WinRT.Views" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d"> 

<Grid Background="{StaticResource ApplicationPageBackgroundBrush}"> 

</Grid> 

</local:BaseMainMenuView> 

當我嘗試構建該頁面,然後我得到錯誤「BaseMainMenuView不支持網格的內容」

Windows.UI.Xaml.Markup.XamlParseException是由用戶代碼未處理 HResult = -2144665590消息= BaseMainMenuView不支持Grid 作爲內容。 [Line:12 Position:22] Source =「」StackTrace: at Windows.UI.Xaml.Application.LoadComponent(Object component,Uri resourceLocator,ComponentResourceLocation componentResourceLocation) at Tutorial.UI.WinRT.Views.MainMenuView.InitializeComponent( )在c:\ Projects \ Misc \ MvvmCross \ Sample - Tutorial.UI.WinRT.Views。Tutorial.UI.WinRT \ obj \ x86 \ Debug \ Views \ MainMenuView.gics:line 。 MainMenuView..ctor()in c:\ Projects \ Misc \ MvvmCross \ Sample - Tutorial \ Tutorial \ Tutorial.UI.WinRT \ Views \ MainMenuView.xaml.cs:line 40 at Tutorial.UI.WinRT.XamlTypeInfo.XamlTypeInfoProvider .Activate_3_MainMenuView() in c:\ Projects \ Misc \ MvvmCross \ Sample - Tutorial \ Tutorial \ Tutorial .UI.WinRT \ OBJ \ 86 \調試\ XamlTypeInfo.g.cs:線在Tutorial.UI.WinRT.XamlTypeInfo.XamlUserType.ActivateInstance()在 C:\項目\其它\ MvvmCross \樣本 - 教程\教程\ Tutorial.UI.WinRT \ OBJ \ 86 \調試\ XamlTypeInfo.g.cs:行 314的InnerException:

如果我嘗試減少代碼:

public class ViewModelAwarePage : Page 
{   
} 

public class BaseMainMenuView 
    : ViewModelAwarePage 
{  
} 

public sealed partial class MainMenuView 
    : BaseMainMenuView 
{ 
    public MainMenuView() 
    { 
     this.InitializeComponent(); 
    } 
} 

那麼頁面加載正常。

我完全不理解這個例外 - 我找到的所有Bing/Google命中都提示Silverlight 2出現問題。

任何人都可以解釋錯誤 - 任何人都可以提出如何我可以從通用頁面繼承的想法?

回答

1

斯圖爾特·請儘量將在預覽版,因爲我相信這是固定

+0

這個星期我就遇到了這個確切的問題,但我是在Win8 RTM和Visual Studio 2012更新1,任何想法的工作? – borrillis 2013-01-31 08:27:34